展开知识库目录

数据库改字段前怎样准备迁移、备份和回滚

加列、改类型、重命名和删除字段都会影响旧代码、回滚、锁表和历史数据。

先把问题看准

字段迁移先回答数据怎样活着过去

加列、改类型、重命名和删除字段都会影响旧代码、回滚、锁表和历史数据。迁移前先发现读写方、数据量、备份和兼容窗口。

第 1 步

盘点读写路径

搜索模型、SQL、接口、报表、任务和外部消费者,确认字段在何处读取、写入和缓存。

把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。

第 2 步

设计向前兼容迁移

优先采用新增、双写、回填、切读、停止旧写、再删除的阶段方式,避免代码和结构同时硬切。

确认“设计向前兼容迁移”已经有可回查结果,再进入“准备备份与恢复”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 3 步

准备备份与恢复

确认备份覆盖目标表、恢复步骤、时间和存储空间;在测试环境实际恢复一次。

确认“准备备份与恢复”已经有可回查结果,再进入“评估锁和批量回填”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 4 步

评估锁和批量回填

用真实数据量估计时间、事务、索引、日志和复制影响,设置批次、暂停和观察指标。

确认“评估锁和批量回填”已经有可回查结果,再进入“分阶段验证和回滚”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 5 步

分阶段验证和回滚

每阶段检查行数、空值、约束、读写和性能,回滚条件具体到版本和数据状态。

需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“迁移计划、备份证据与回滚步骤”。

完成后应能在“迁移计划、备份证据与回滚步骤”中找到与这一步对应的记录;仍需靠猜测补全,就停在这里。

做到这里就可以停

迁移完成前不要提前删旧字段

只有所有消费者切换、回填核对、观察窗通过、备份可恢复并获得批准后,才执行不可逆清理。每一步保留命令和结果。

进一步核对

参考资料与核对入口