用途
Database Migration Generator 用于为数据库模式变更生成迁移文件,并同时生成对应的回滚逻辑。该技能内置 ToM 验证机制,强调数据库迁移属于高风险操作,生成前必须确认理解。
主要能力
- 自动识别迁移框架:检测 Knex、Prisma、TypeORM、Drizzle;若均未检测到,则提供原生 SQL、Knex 或 Prisma 选项供选择。
- 收集迁移需求:包括迁移名称、变更类型(create_table、add_column、modify_column、drop_column、rename、add_index、add_constraint)、目标表与模式细节。
- ToM 验证检查点:在执行前展示迁移名称、框架、类型、目标表、UP 变更预览、DOWN 回滚预览及所做假设,要求用户确认后才生成。
- 生成迁移文件:按框架生成带时间戳的迁移文件,Knex 和 TypeORM 使用 up/down 函数模板,Prisma 通过更新 schema.prisma 并配合 migrate 命令。
- 回滚逻辑对应:确保每个 UP 操作都有对应的 DOWN 操作,如 CREATE TABLE 对应 DROP TABLE、ADD COLUMN 对应 DROP COLUMN、ADD INDEX 对应 DROP INDEX、RENAME 对应反向 RENAME 等。
- 安全检查:检查是否定义回滚、是否有无备份警告的 DROP TABLE、是否对大表执行 ALTER、是否添加无默认值的 NOT NULL 列,以及删除有数据列、重命名列、添加唯一约束、大表锁表等风险。
- 输出迁移摘要:展示文件路径、框架、时间戳、UP/DOWN 摘要以及运行与回滚命令。
- 知识图谱集成:生成前查询数据库相关模式、陷阱与决策;生成后输出 execution_summary JSON,记录所遵循的模式、所做决策、规避的陷阱与假设,并通过脚本写入知识图谱。
使用方式
技能通过自动调用触发,当用户提到“Create migration”“Add table”“Modify schema”“Change database”“Database migration for [change]”“Add column to [table]”“Rename [table/column]”等语句时启用。执行流程为:检查既有模式(查询知识图谱)→ 检测迁移框架 → 收集需求 → ToM 验证 → 生成迁移文件 → 生成回滚逻辑 → 验证安全性 → 展示摘要 → 输出执行摘要。框架特定命令包括 Knex 的 npx knex migrate:latest、npx knex migrate:rollback,Prisma 的 npx prisma migrate dev --name、npx prisma migrate deploy,TypeORM 的 npx typeorm migration:run、npx typeorm migration:revert 等。
适用场景
适用于新增表、向现有表添加列、修改现有列、删除列、重命名表或列、创建索引、添加外键或唯一约束等数据库模式变更场景。文档建议始终先在开发数据库测试、生产环境运行前备份、在支持的情况下使用事务、对非空列考虑数据迁移,并在运行前审阅生成的 SQL 与完整回滚逻辑。
限制
文档说明该技能为文本驱动设计,没有 Python 辅助函数,迁移生成高度依赖具体模式,未来版本(v6.6.0)可能提取时间戳生成器与按框架模板。知识图谱步骤在 .agent/.nav-config.json 中禁用时可跳过。若未检测到迁移框架,需先安装配置 Knex、Prisma 或 TypeORM。若迁移名称与已有文件相近,需选择不同名称、添加版本后缀或确认现有迁移是否足够。具体支持的数据库版本、平台与费用信息暂未提供。