先扩展,再切换
先做增量变更,例如新增可空列、新表,或使用数据库支持的在线方式创建索引。在依赖新字段之前,先部署能兼容新旧架构的代码。
分批回填现有记录,监控数据库负载,并让任务支持断点续跑。避免使用一个长事务造成长时间锁定或复制延迟突然上升。
验证后再收缩
所有运行中的实例都使用新结构后,先核对数据一致性并观察错误,再删除旧列或约束。为延迟任务和回滚流程留出足够的兼容时间。
用接近生产环境的数据量测试迁移并制定恢复方案。回滚应用代码未必能撤销破坏性架构变更;保留旧数据或向前修复可能更安全。
采用渐进式迁移,让部署期间的新旧应用版本都能兼容。将添加结构、回填数据、切换读写逻辑和移除旧结构拆成可观测的步骤。
先做增量变更,例如新增可空列、新表,或使用数据库支持的在线方式创建索引。在依赖新字段之前,先部署能兼容新旧架构的代码。
分批回填现有记录,监控数据库负载,并让任务支持断点续跑。避免使用一个长事务造成长时间锁定或复制延迟突然上升。
所有运行中的实例都使用新结构后,先核对数据一致性并观察错误,再删除旧列或约束。为延迟任务和回滚流程留出足够的兼容时间。
用接近生产环境的数据量测试迁移并制定恢复方案。回滚应用代码未必能撤销破坏性架构变更;保留旧数据或向前修复可能更安全。