database-migration
Plan, write, or review a concrete database schema or data migration and its rollout. Use for migration scripts, backfills, compatibility, and recovery; not for ordinary queries or generic database per
SKILL.md.claude/skills/database-migration/SKILL.md
GitHub数据库迁移
为指定的库表或数据变更制定可执行、可核验的迁移。先读项目现有迁移工具、命名规则、数据库版本与部署方式;不自行换工具,也不把开发库的成功推断为生产安全。
迁移步骤
- 固定现状与目标。 核实表结构、数据量与异常数据、读写代码、消费者、版本发布顺序及目标约束。区分纯结构变更、数据回填和需要服务协同的语义变更;关键环境信息缺失且影响脚本正确性时先确认。
- 设计兼容路径。 有新旧服务同时运行时,按需要拆成扩展结构、兼容读写、回填与收紧约束/删除旧结构等阶段;每阶段写明前置条件与可观察的完成标准。没有混合版本需求时,使用项目最简单的迁移方式。
- 编写与验证脚本。 遵守项目版本与事务约定。检查空值、默认值、唯一性、外键、索引、锁、长事务和重复执行/失败重试的实际语义。数据回填需要批次时,使用可恢复的进度锚点并核对行数与结果,不用无条件全表更新来碰运气。
- 准备恢复办法。 明确哪些变更可回滚、哪些只能前滚或从备份恢复;不要声称删除字段、丢失数据或对外副作用可以靠反向 SQL 自动恢复。把备份、停写或维护窗口列为必要条件时说明原因。
- 在可用环境核验。 优先用项目现有临时数据库或测试环境执行迁移及相关测试,对比迁移前后约束和数据不变量;记录耗时与锁风险。用户未授权生产操作时,只交付脚本与实施顺序,不连接生产库执行。
交付迁移文件或方案、执行顺序、前后校验 SQL/指标、失败恢复路径,以及实际运行过的验证结果。未知数据库状态和未运行的步骤明确标为待验证。
边界
- 单条查询优化或慢 SQL 根因测量:
performance-investigation。 - 新业务功能中的普通持久化实现:
code-vibe-workflow;涉及真实 schema/数据迁移时再用本 skill。 - 对既有迁移做全面代码质量审查:
code-review-deep-zh。