chore: 导入旧记忆备份供恢复
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: 生产部署与运维踩坑(宝塔/PM2/升级)
|
||||
type: experience
|
||||
permalink: main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/生产部署与运维踩坑宝塔-pm2-升级
|
||||
stable_id: 2939ce96-a6f6-418a-9a70-568980dbdc2a
|
||||
scope: project
|
||||
memory_type: experience
|
||||
project_id: d44c219a-0b31-4de1-b160-323eb34a4c6a
|
||||
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
|
||||
status: active
|
||||
revision: 1
|
||||
request_id: artveris-migrate-2026-09-03-exp-03
|
||||
created_at: '2026-09-03T03:46:20.683407+00:00'
|
||||
updated_at: '2026-09-03T03:46:20.683407+00:00'
|
||||
tags:
|
||||
- production
|
||||
- pm2
|
||||
- baota
|
||||
- upgrade
|
||||
- pitfall
|
||||
---
|
||||
|
||||
- **宝塔“Node/PM2 项目”面板不会配置开机自启**:只做 `pm2 save` 不够,服务器重启后应用不在线(2026-09-03 续费重启后发生)。新服务器部署后必须 `pm2 startup systemd -u root --hp /root` + `pm2 save`,并检查 `systemctl is-enabled pm2-root`。resurrect 对在跑应用幂等。
|
||||
- 服务器 MySQL 5.7 业务账号无 PROCESS 权限,`mysqldump` 必须加 `--no-tablespaces`。
|
||||
- 上传到 Linux 的 shell 脚本必须 LF 无 BOM(CRLF 会让 bash 报错);本机 ps1 正文用英文,读远端中文需 `[Console]::OutputEncoding = UTF8`。
|
||||
- 升级包必须解压到线上目录之外;`upgrade.sh/ps1` 会拒绝根目录/同目录/互相嵌套路径,并校验部署哨兵与包完整性;部署目录勿用 NTFS Junction。
|
||||
- 生产包启动报缺 `.prisma/client/default`:安装依赖后必须在 apps/api 执行 `prisma generate`(init/upgrade 脚本已包含)。
|
||||
- 安装向导建库:宝塔/云 DB 通常已预建库+账号,`ensureDatabase` 幂等跳过;自建 MySQL 业务账号需建库权限或填管理员账号,不自动 GRANT。
|
||||
- 升级模式保留旧 `.env`,旧部署无 `SETTING_ENCRYPTION_KEY` 会回退 JWT_SECRET(无回归);Docker/remote 复用 `.deploy/deploy-secrets.json` 保证密钥稳定,否则旧数据因新随机密码连不上。
|
||||
- 历史 `appIconUrl` 若存 `/uploads/...` URL,local→OSS 后可能指向旧路径;前端按所在端回退默认图标 `/admin/app-icon.svg`、`/trace/app-icon.svg`。
|
||||
Reference in New Issue
Block a user