pdlc-db-migrate
النجوم١٠
التفرعات٢
آخر تحديث١٨ يوليو ٢٠٢٦ في ٠٥:٢٣
数据库迁移管理
التثبيت
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
SKILL.md
readonlyالقائمة
数据库迁移管理
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
全自动 PDLC 新功能开发(串联 PRD→设计→TDD→实现→评审→发布)
全自动 Bug 修复(定位→复现→修复→测试→文档)
按设计文档和已有测试用例实现代码(带前置守卫、自检、handoff)
创建 PRD 文档(自动化生成 + 自检 + handoff)
质量闸门——跑真实 check、对照质量目标、出可核对报告,由人签字放行
代码评审 + 文档评审
| name | pdlc-db-migrate |
| description | 数据库迁移管理 |
| argument-hint | <迁移描述 | 版本号> |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash |
| layer | 3 |
| stage | engineering |
| produces | ["backend/migrations/**"] |
| requires | [] |
| next_step | null |
| terminal_state | null |
根据 db-design 文档管理数据库迁移脚本,支持生成、执行、回滚和状态查看。
从 $ARGUMENTS 中解析子命令和参数:
| 子命令 | 格式 | 说明 |
|---|---|---|
generate <描述> | 根据 db-design 文档生成版本化迁移脚本(up + down) | |
status | 查看迁移状态,列出已执行/待执行的迁移 | |
up | 执行所有待执行的迁移 | |
down [N] | 回滚最近 N 个迁移(默认 1) | |
diff <功能名> | 对比 db-design 文档与现有迁移脚本,生成增量迁移 |
如果未提供子命令或子命令无法识别,输出以上帮助信息后停止。
当子命令为 generate 或 diff 时执行:
docs/02_design/database/ 目录下搜索包含该关键词的数据库设计文档
F<日期>-<编号>-*<关键词>*-db.mdYYYYMMDD-*<关键词>*-db.md⛔ PDLC 守卫:未找到与「<功能名>」相关的数据库设计文档。
迁移脚本必须基于已有的数据库设计。请先运行:
👉 /pdlc-db-design <设计目标>
F20260326-090000),读取该设计文档内容,继续执行backend/services/<service>/migrations/migrations/backend/services/ 目录,按微服务项目处理;否则按单服务项目处理V<版本号>__<描述>.sqlR<版本号>__<描述>.sqlYYYYMMDD_HHMMSS(如 20260402_143052)每个迁移文件必须包含以下头部注释:
-- ==============================================
-- 迁移脚本: V20260402_143052__create_users_table.sql
-- 功能ID: F20260402-090000
-- 描述: 创建用户表
-- 作者: <从 git config 获取>
-- 日期: 2026-04-02
-- ==============================================
.claude/templates/pdlc/db-migrate-template.md 模板YYYYMMDD_HHMMSSV<版本号>__<描述>.sql
R<版本号>__<描述>.sql
migrations/migration_history.md查找迁移目录下所有 V*.sql 文件
读取 migrations/migration_history.md(如不存在则提示无迁移记录)
输出迁移状态表格:
📋 迁移状态
| 版本号 | 描述 | 功能ID | 状态 | 执行时间 |
|--------|------|--------|------|----------|
| 20260402_143052 | 创建用户表 | F20260402-090000 | ✅ 已执行 | 2026-04-02 14:35 |
| 20260402_150000 | 添加订单表 | F20260402-100000 | ⏳ 待执行 | - |
已执行: 1 | 待执行: 1 | 总计: 2
migrations/migration_history.md 确定已执行的迁移V*.sql 文件migrations/migration_history.md 中的状态为「已执行」注意:本命令不直接连接数据库执行 SQL。它展示待执行的脚本内容,由用户在数据库客户端中手动执行,然后更新迁移历史记录。
migrations/migration_history.md 确定已执行的迁移R*.sql 回滚文件migrations/migration_history.md 中的状态为「已回滚」注意:与
up相同,本命令不直接执行 SQL,由用户手动执行后更新记录。
V*.sql 文件,提取已定义的表结构在迁移目录下维护 migration_history.md 文件:
# 迁移历史
| 版本号 | 描述 | 功能ID | 执行时间 | 状态 |
|--------|------|--------|----------|------|
| 20260402_143052 | 创建用户表 | F20260402-090000 | 2026-04-02 14:35 | 已执行 |
| 20260402_150000 | 添加订单表 | F20260402-100000 | - | 待执行 |
状态值:待执行 | 已执行 | 已回滚
迁移操作: $ARGUMENTS
本命令的 handoff 输出:
✅ 数据库迁移脚本 完成
📦 产出:backend/migrations/V<版本号>__<描述>.sql
👉 下一步:(本次流程结束,无后续)