mcpField
M
migrate-validate

migrate-validate

github.com/ruvnet测试与质量80.0k728 次安装今天更新
代码仓库

关于 migrate-validate

migrate-validate 用于在应用数据库迁移前检查待处理迁移,涵盖架构引用、回滚完整性、破坏性操作、幂等性和命名,并按严重程度和位置报告问题。

主要功能

  1. 01查找待处理迁移文件
  2. 02检查外键和列默认值
  3. 03验证回滚操作完整性
  4. 04标记破坏性操作
  5. 05检查幂等性和命名规范
  6. 06按严重程度和位置报告问题

适用场景

  1. 01应用迁移前进行审查
  2. 02发现缺失的回滚语句
  3. 03识别不安全的架构变更

MCP 相关

使用 Ruflo MCP memory 工具查询已应用迁移记录,并存储验证模式或结果。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ruvnet/ruflo --skill migrate-validate

安装后在 Claude Code 中输入/migrate-validate确认已加载。

详细介绍

迁移验证

验证所有待处理数据库迁移的正确性、安全性和最佳实践遵循情况。

适用场景

应用迁移前,尽早发现问题——引用不存在表的外键、缺少回滚 SQL、没有安全措施的破坏性操作,以及命名规范违规。

步骤

  1. 查找待处理的迁移——使用 Glob 列出所有迁移文件,通过 mcp__plugin_ruflo-core_ruflo__memory_search --namespace migrations(或 memory_list)与已应用的历史记录交叉比对,找出待处理的迁移。memory_* 工具系列根据命名空间路由;agentdb_hierarchical-* 不会这样做(它根据层级路由),因此此处应使用 memory_*。
  2. 解析 SQL——使用 Read 加载每个待处理的 .up.sql 和 .down.sql 文件,并解析 SQL 语句
  3. 检查外键——验证所有 REFERENCES 目标表都存在于当前架构或先前的迁移中(包括已应用和待处理的迁移)
  4. 检查 NOT NULL 默认值——验证任何带有 NOT NULL 的 ADD COLUMN 都有 DEFAULT 值
  5. 检查回滚完整性——验证 UP 文件中的每个 CREATE/ALTER 在 DOWN 文件中都有对应的 DROP/ALTER
  6. 标记破坏性操作——对没有明确确认的 DROP TABLE、DROP COLUMN、TRUNCATE 发出警告
  7. 检查幂等性——验证是否使用 IF EXISTS / IF NOT EXISTS 来确保安全
  8. 检查命名——验证表名为复数形式,列名使用 snake_case,索引名遵循 idx_table_column 规范
  9. 存储验证模式——有两种方式(遵循 ruflo-cost-tracker ADR-0001 双路径模式):
    • 模式存储(类型化,推荐):使用 mcp__plugin_ruflo-core_ruflo__agentdb_pattern-store,并设置 type: 'migration-validation'。无需 namespace 参数——由 ReasoningBank 路由。
    • 普通存储(可按命名空间路由):使用 mcp__plugin_ruflo-core_ruflo__memory_store --namespace migrations,存储与特定迁移编号关联的验证结果。
  10. 报告——显示错误(必须修复)、警告(应该修复)和提示(建议),并为每个问题注明文件路径和行号

CLI 替代方案

npx @claude-flow/cli@latest memory search --query "migration validation results" --namespace migrations

评论

支持 Markdown