逐日 AI 版本升级与数据迁移指南:升级不丢数据
作者:夸父
自部署系统的升级流程:升级前备份什么、怎么平滑升级不中断任务、升级后验证哪些功能,以及换服务器时的完整数据迁移清单。
升级前:三样东西备份好
- 数据库:MySQL 里存着用户、项目、切片、配置(含加密的模型 Key)。一条 mysqldump 即可:
mysqldump -u user -p aivideo > backup-$(date +%F).sql。 - storage 目录:素材、音频、成片都在这里,直接整目录拷贝(或按你配置的 OSS 检查完整性)。
- 环境变量:.env 文件单独备份——里面是域名、密钥、统计 ID 这些"丢了要回忆半天"的东西。
标准升级流程
# 1. 备份(上面的三样)
# 2. 拉新代码
git pull
# 3. 安装依赖(如有变更)
pnpm install
# 4. 数据库迁移(如有 prisma 迁移)
npx prisma migrate deploy
# 5. 重新构建并重启
pnpm run build && pm2 restart zhuri-server zhuri-worker zhuri-web
静态导出部署的站点,前端部分改为重新执行 pnpm run build:static 并同步 out/ 目录(参考静态部署文档),API/worker 部分与上面相同。
升级后验证清单
按用户路径走一遍:登录 → 新建项目 → 一镜生成(文案/配音/生图各一次)→ 数字人任务 → 导出成片下载。全绿即完成,全程约 10 分钟。别忘了一起确认百度统计还在正常上报(页面源码里搜 hm.baidu.com)。
换服务器的完整迁移
- 旧机备份:数据库 dump + storage 目录 + .env;
- 新机按部署指南拉起同版本服务(先别导数据);
- 导入数据库、替换 storage、恢复 .env(注意域名/统计 ID 是否变化);
- DNS 切换前先改 hosts 验证全流程;
- 确认无误后切 DNS,旧机保留一周再下线。
回滚
升级后出现异常:恢复应用代码到上一版本 + 重新 pnpm install && build + 重启;数据层面用升级前的 dump 恢复(所以备份是第一步,不是可选项)。
常见问题
升级会不会丢失项目数据?
正常升级不会。项目/素材/配置都在 MySQL 与 storage 目录里,升级只替换应用代码。但仍建议每次升级前做一次备份——5 分钟的成本,换一个"可回滚"的底气。
升级期间正在跑的生成任务怎么办?
切片任务是持久化在队列里的:worker 重启后,未完成的切片会从断点继续,已完成的切片不会重复扣费。稳妥起见,建议避开大批量任务的时段升级。
怎么知道有新版本?
关注仓库的 release 与博客的更新记录(产品更新类目)。升级前看一眼变更说明,确认没有需要手动处理的迁移步骤。


