database-migrations

🗄️ 零停机数据库迁移与回滚策略

面向生产环境的数据库零停机迁移策略与反模式规避指南,涵盖 schema 演进、双写模式、回滚方案及工具选型。

收藏
5.3k
安装
1.7k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

该 skill 为数据库 schema 变更提供系统性的安全方法论,覆盖从规划到执行的完整生命周期:

  • 策略选型:Additive-Only(仅增不改)、Expand-Contract(扩展-收缩)、Lazy Migration(惰性迁移)等七种模式,按风险等级与停机要求匹配场景
  • 零停机模式:针对加列、改列名、删列、改类型、加索引等高频操作,给出具体的 SQL 级操作约束(如 CREATE INDEX CONCURRENTLY、分阶段添加 NOT NULL
  • 工具矩阵:对比 Prisma Migrate、Alembic、Flyway、Atlas 等 8 款主流工具,按声明式/命令式、ORM 集成度、生态匹配度提供选型建议
  • 回滚策略:区分可逆迁移(up/down)与仅向前迁移(corrective),配套软删除列、快照表、蓝绿部署等多层数据保护机制
  • 数据迁移:针对大批量数据回填,提供游标批处理、节流控制、惰性回填等实现模式,附 PostgreSQL 存储过程示例

显著优点

  • 生产级完备性:涵盖从 schema 变更到数据回填、从 CI 测试到监控告警的全链路 checklist
  • 风险量化:用表格形式明确标注每种策略的风险等级、停机要求与适用场景,便于快速决策
  • 可操作的代码示例:包含批处理存储过程、蓝绿部署流程图、CI pipeline YAML,降低落地门槛
  • 反模式警示:8 条 "NEVER" 红线直接对应生产事故高频根因(如未删引用先删列、大表加 NOT NULL 无默认值)

潜在局限

  • 生态侧重:示例以 PostgreSQL 为主,MySQL 的 ALGORITHM=INPLACE、Oracle 的在线重定义等特性未展开
  • 云原生场景:对托管数据库(RDS、Cloud SQL)的特定限制(如主备切换窗口、只读副本延迟)讨论较少
  • 分布式数据库:未涉及分片场景下的协调迁移(如 Vitess、Citus、TiDB 的 online DDL 差异)

适合人群

  • 负责生产环境 schema 演进的后端/DBA/SRE 工程师
  • 需要建立团队迁移规范的技术负责人
  • 准备通过 SOC2/ISO27001 审计、需固化变更流程的合规团队

常规风险

  • 认知偏差风险:开发者易低估大表 DDL 的锁影响,需严格执行 "benchmark on production-scale data" 要求
  • 工具链风险:声明式工具(Prisma、Drizzle)的自动 diff 可能生成意外高危 SQL,必须人工 review
  • 回滚失效风险:数据破坏性变更(如截断、类型强转)无法通过 down 迁移恢复,需依赖备份/快照
  • 协调风险:应用代码与 schema 变更的部署顺序错误(先部署依赖新 schema 的代码)将导致故障

database-migrations 内容

手动下载zip · 5.5 kB
README.mdtext/markdown
请选择文件