先看看示例
作者提供的示例,实际效果取决于你的输入和使用工具。
输入
编辑材料:PostgreSQL users表含id主键、username文本;应用A仍读写username,应用B将读display_name。不能在同一次发布里删除旧列,需保留回退到A的能力。
输出
编辑示例 · 未运行
| 阶段 | 具体变更 | 进入下一阶段的条件 |
|---|---|---|
| 扩展 | 增加可空 display_name;保留 username | A仍能正常读写,迁移锁影响经测试副本检查 |
| 兼容写入 | 发布同时写两列、仍读 username 的应用 | 两列写入失败能被发现并修复 |
| 回填与核对 | 独立批次补历史 display_name | 空值与两列不一致记录有明确处理结果 |
| 切读 | B读取 display_name,继续双写 | 业务验收通过,仍可切回A |
| 收缩 | 旧版本退出后另发迁移移除 username | 确认没有旧读写方并另行评审删除 |
当前不应直接执行 RENAME COLUMN:它会让仍引用 username 的A失去原字段。
方法说明
按扩展、回填、切换和收缩安排数据库变更,减少新旧应用同时运行时的兼容问题。 具体任务 规划一个字段替换迁移:依据现有表、代码读写和部署约束,拆分变更阶段并给出逐阶段退出条件。 审查大表索引或回填:识别事务、锁、批量大小和失败恢复要求,留下待验证的生产规模风险。 必需材料 当前表定义、数据规模和拟变更字段 数据库/迁移工具版本以及应用读写与部署顺序 可选材料 维护窗口与备份恢复方案 测试副本、慢查询或锁等待观测 使用门槛 能够阅读SQL和迁移历史,拥有可用于演练的独立数据库及相应维护知识。 这个 Skill 额外提供的方法 把表结构变化与数据回填分离,要求先保证旧代码仍能工作,再通过双写与一致性核对完成读路径切换。 编辑示例(未运行) 替换展示名字段时兼容旧代码 任务:评审 username 改 display_name 的发布方案 输入: 编辑材料:PostgreSQL users表含id主键、username文本;应用A仍读写username,应用B将读display_name。不能在同一次发布里删除旧列,需保留回退到A的能力。 结果片段: | 阶段 | 具体变更 | 进入下一阶段的条件 | |---|---|---| | 扩展 | 增加可空 display_name;保留 username | A仍能正常读写,迁移锁影响经测试副本检查 | | 兼容写入 | 发布同时写两列、仍读 username 的应用 | 两列写入失败能被发现并修复 | | 回填与核对 | 独立批次补历史 display_name | 空值与两列不一致记录有明确处理结果 | | 切读 | B读取 display_name,继续双写 | 业务验收通过,仍可切回A | | 收缩 | 旧版本退出后另发迁移移除 username | 确认没有旧读写方并另行评审删除 | 当前不应直接执行 `RENAME COLUMN`:它会让仍引用 username 的A失去原字段。 这是编辑制定的迁移评审片段,未连接数据库、未执行DDL;阶段条件需在实际工具与数据量上验证。 首次任务 请使用已安装的 database-migrations Skill。 任务:规划一个字段替换迁移。 依据现有表、代码读写和部署约束,拆分变更阶段并给出逐阶段退出条件。 必需材料: - 当前表定义、数据规模和拟变更字段:[填写或粘贴我的实际材料] - 数据库/迁移工具版本以及应用读写与部署顺序:[填写或粘贴我的实际材料] 可选材料: - 维护窗口与备份恢复方案:[有则补充;缺失时不要假定存在] - 测试副本、慢查询或锁等待观测:[有则补充;缺失时不要假定存在] 处理边界:已部署迁移不原地改写;生产修复用新的前向迁移,不把down脚本当作无损恢复保证。;源命令含npx Prisma/Drizzle,须先核对并固定项目依赖;reset与push仅在明确隔离的开发环境评估,不直接套用于生产。。先指出影响任务的材料缺口;没有实际执行的操作和测试不要写成已完成。 请按以下标准交付可审阅结果: 1. 每个部署阶段都说明旧应用与新应用读写哪些字段。 2. 回填、DDL和删除分别有可核对的完成条件,失败恢复不依赖修改旧迁移。 3. 危险开发命令、事务限制和生产规模验证缺口被明确标出。 验收方法 每个部署阶段都说明旧应用与新应用读写哪些字段。 回填、DDL和删除分别有可核对的完成条件,失败恢复不依赖修改旧迁移。 危险开发命令、事务限制和生产规模验证缺口被明确标出。 依赖与准备 保留完整 database-migrations 目录;按项目选用 PostgreSQL、Prisma、Drizzle、Kysely、Django 或 golang-migrate 的既有版本与配置。源文件包含npx调用和破坏性开发命令,执行前固定工具版本、确认连接目标及权限,并保留可审查迁移与恢复材料。 使用边界 已部署迁移不原地改写;生产修复用新的前向迁移,不把down脚本当作无损恢复保证。 源命令含npx Prisma/Drizzle,须先核对并固定项目依赖;reset与push仅在明确隔离的开发环境评估,不直接套用于生产。 CONCURRENTLY不能放在普通事务块中;新增列等DDL仍可能取锁,源示例中的简化措辞不构成零停机保证。 本站示例由编辑撰写,未运行上游 Skill,不代表平台已完成工具兼容认证。 排错 并发建索引报事务块错误:检查迁移工具是否自动包事务,把该操作按工具支持的非事务方式单独编排。 切换后新列缺值或与旧列不一致:先保留双写和旧列,定位漏写窗口及回填覆盖范围,再决定是否切读。 固定来源 https://github.com/affaan-m/ECC/blob/c70874fae9eb0e5ad0365beb7e2955899fd1d30f/skills/database-migrations/SKILL.md 许可 MIT。许可原文:https://github.com/affaan-m/ECC/blob/c70874fae9eb0e5ad0365beb7e2955899fd1d30f/LICENSE 仓库热度 affaan-m/ECC 仓库 269,717 Stars(2026-09-30 核验);这是父仓库指标,不是单个 Skill 的评分。