创建迁移核对清单技能
仓库技能是一个 markdown 文件,你需要将其提交到任意仓库中的 一旦这个文件被提交,Devin 就会将其视为一项可用技能。每当当前会话涉及此代码库中的迁移文件时,Devin 都可以自动触发该检查清单,或者你也可以在任何时候手动执行它。
.agents/skills/<your-skill>/ 目录下。Devin 能看到所有已连接仓库中的所有技能——你可以手动触发它们,或者当 Devin 检测到相关情况时自动触发。这个技能会精确告知 Devin 在打开或更新 PR 之前应该如何审查数据库迁移,从而捕捉到常规代码审查通常会遗漏的错误。在你的代码仓库中提交 .agents/skills/migration-checklist/migration-checklist.md 文件:在实际迁移中查看该技能的触发方式
当 Devin 处理会添加或修改迁移文件的任务时,它会读取 diff,匹配迁移检查清单技能,并在打开 PR 之前按照检查清单执行操作。实际执行过程如下:
- 扫描 diff — Devin 看到
db/migrate/中有新文件,并激活迁移检查清单技能 - 标记破坏性操作 — 该迁移移除了
legacy_email列。Devin 添加了一条 PR 评论:remove_column :users, :legacy_email是一个破坏性操作。 已验证:迁移包含数据备份步骤,会在删除前将值复制到user_archives中。 - 补充缺失索引 — 该迁移向
invoices表添加了account_id列,但没有索引。Devin 将add_index :invoices, :account_id追加到迁移文件中 - 执行回滚 — Devin 在测试数据库上执行
bin/rails db:migrate:rollback STEP=1。回滚执行成功 - 重新生成 schema — Devin 运行
bin/rails db:schema:dump,检测到db/schema.rb中的 diff,并在提交中包含更新后的文件 - 运行模型测试 — 所有模型测试均通过。Devin 打开 PR,并附上每项检查结果的摘要
