后台备份能带走什么?换服务器恢复后为什么主题和图片没了?

最后更新时间:2026-09-22 18:54:37

1. 结论:默认只备份"站点内容和配置"

V5.9.0 起备份使用 vvcms-backup JSON v2 格式,备份范围标记为 safe-site。它的定位是站点内容和配置的迁移,不是整机镜像。

明确不包含以下三类:

不含的内容后果
用户身份表恢复后管理员账号不会跟着回来
数据库之外的上传文件uploads 里的图片、附件全部丢失
主题文件恢复后站点没有模板,前台无法渲染

这就是为什么换服务器恢复之后,文章都在,但图片裂了、主题没了——不是恢复失败,是那部分本来就不在包里。

2. 完整迁移必须额外备份这四样

  1. 数据库备份(后台导出的 JSON v2 文件)
  2. 上传目录uploads,直接打包整个目录)
  3. 主题目录(当前使用的主题文件夹)
  4. 部署配置(数据库连接配置、反向代理配置、License 与域名绑定信息)

3. v2 相比 v1 做了什么改进

  • 使用明确的应用数据表注册表,不再把数据库里的任意表自动纳入备份(v1 会把无关表一起带走)。
  • SQLite / MySQL / PostgreSQL 统一备份格式,跨数据库迁移不用再手工转换。
  • 导出使用单个数据库事务快照,保证数据一致性,不会导到一半数据变了。
  • 恢复时按表依赖关系执行删除和插入,避免外键顺序问题。
  • 校验备份文件的版本号、表名、列名及目标表结构,结构对不上会明确报错而不是静默写入。
  • PostgreSQL 恢复后自动同步自增序列(避免恢复完插入报主键冲突)。
  • 恢复前自动生成 pre-restore-*.json 安全备份
  • 上传的备份文件采用临时文件 + 原子重命名,降低中断导致文件损坏的风险。

4. 兼容性

  • v1 备份文件仍可读取,不需要先升级再恢复。
  • 自动兼容旧备份中的 column.page_limit 字段,转换为 column.limit_num

5. 恢复时的注意事项

  1. 大型数据恢复目前是同步操作,恢复期间不要同时进行内容编辑。
  2. 恢复会先删后插,目标库的现有数据会被覆盖。确认选对了环境再执行。
  3. 生产环境升级前,建议先在测试环境完整跑一遍备份恢复流程,验证备份确实是有效的——没验证过的备份等于没有备份。