| 常用路径 | 扩展(加字段或表)→ 双写与回填 → 切换读取 → 收缩(清理旧结构) |
|---|---|
| 回退脚本 | 每次迁移准备 down 脚本并演练 |
| 数据修复 | DML 失误用备份或闪回,先冻结写入再处理 |
| 验证 | 回滚后跑数据一致性校验 |
扩展与收缩的版本节奏
扩展与收缩的版本节奏
V1 加可空字段 旧代码不受影响
V2 回填并双写
V3 读取切换到新字段
V4 删除旧字段(确认无回退需求后)破坏性变更(DROP、TRUNCATE)前必须确认备份完成且可恢复,并安排在收缩阶段后期执行。
数据库没有一键回滚:策略以向前兼容为目标,先扩展后收缩、变更与应用发布解耦,并准备回退脚本、确认备份可用。
| 常用路径 | 扩展(加字段或表)→ 双写与回填 → 切换读取 → 收缩(清理旧结构) |
|---|---|
| 回退脚本 | 每次迁移准备 down 脚本并演练 |
| 数据修复 | DML 失误用备份或闪回,先冻结写入再处理 |
| 验证 | 回滚后跑数据一致性校验 |
V1 加可空字段 旧代码不受影响
V2 回填并双写
V3 读取切换到新字段
V4 删除旧字段(确认无回退需求后)