1. 结论:默认只备份"站点内容和配置"
V5.9.0 起备份使用 vvcms-backup JSON v2 格式,备份范围标记为 safe-site。它的定位是站点内容和配置的迁移,不是整机镜像。
明确不包含以下三类:
| 不含的内容 | 后果 |
|---|
| 用户身份表 | 恢复后管理员账号不会跟着回来 |
| 数据库之外的上传文件 | uploads 里的图片、附件全部丢失 |
| 主题文件 | 恢复后站点没有模板,前台无法渲染 |
这就是为什么换服务器恢复之后,文章都在,但图片裂了、主题没了——不是恢复失败,是那部分本来就不在包里。
2. 完整迁移必须额外备份这四样
- 数据库备份(后台导出的 JSON v2 文件)
- 上传目录(
uploads,直接打包整个目录) - 主题目录(当前使用的主题文件夹)
- 部署配置(数据库连接配置、反向代理配置、License 与域名绑定信息)
3. v2 相比 v1 做了什么改进
- 使用明确的应用数据表注册表,不再把数据库里的任意表自动纳入备份(v1 会把无关表一起带走)。
- SQLite / MySQL / PostgreSQL 统一备份格式,跨数据库迁移不用再手工转换。
- 导出使用单个数据库事务快照,保证数据一致性,不会导到一半数据变了。
- 恢复时按表依赖关系执行删除和插入,避免外键顺序问题。
- 校验备份文件的版本号、表名、列名及目标表结构,结构对不上会明确报错而不是静默写入。
- PostgreSQL 恢复后自动同步自增序列(避免恢复完插入报主键冲突)。
- 恢复前自动生成
pre-restore-*.json 安全备份。 - 上传的备份文件采用临时文件 + 原子重命名,降低中断导致文件损坏的风险。
4. 兼容性
- v1 备份文件仍可读取,不需要先升级再恢复。
- 自动兼容旧备份中的
column.page_limit 字段,转换为 column.limit_num。
5. 恢复时的注意事项
- 大型数据恢复目前是同步操作,恢复期间不要同时进行内容编辑。
- 恢复会先删后插,目标库的现有数据会被覆盖。确认选对了环境再执行。
- 生产环境升级前,建议先在测试环境完整跑一遍备份恢复流程,验证备份确实是有效的——没验证过的备份等于没有备份。