展开知识库目录
数据库改字段前怎样准备迁移、备份和回滚
加列、改类型、重命名和删除字段都会影响旧代码、回滚、锁表和历史数据。
字段迁移先回答数据怎样活着过去
加列、改类型、重命名和删除字段都会影响旧代码、回滚、锁表和历史数据。迁移前先发现读写方、数据量、备份和兼容窗口。
盘点读写路径
搜索模型、SQL、接口、报表、任务和外部消费者,确认字段在何处读取、写入和缓存。
把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。
设计向前兼容迁移
优先采用新增、双写、回填、切读、停止旧写、再删除的阶段方式,避免代码和结构同时硬切。
确认“设计向前兼容迁移”已经有可回查结果,再进入“准备备份与恢复”;依据仍然来自猜测时,把缺口单列并停在当前步骤。
准备备份与恢复
确认备份覆盖目标表、恢复步骤、时间和存储空间;在测试环境实际恢复一次。
确认“准备备份与恢复”已经有可回查结果,再进入“评估锁和批量回填”;依据仍然来自猜测时,把缺口单列并停在当前步骤。
评估锁和批量回填
用真实数据量估计时间、事务、索引、日志和复制影响,设置批次、暂停和观察指标。
确认“评估锁和批量回填”已经有可回查结果,再进入“分阶段验证和回滚”;依据仍然来自猜测时,把缺口单列并停在当前步骤。
分阶段验证和回滚
每阶段检查行数、空值、约束、读写和性能,回滚条件具体到版本和数据状态。
需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“迁移计划、备份证据与回滚步骤”。
完成后应能在“迁移计划、备份证据与回滚步骤”中找到与这一步对应的记录;仍需靠猜测补全,就停在这里。
迁移完成前不要提前删旧字段
只有所有消费者切换、回填核对、观察窗通过、备份可恢复并获得批准后,才执行不可逆清理。每一步保留命令和结果。
