关于 migrate-validate
migrate-validate 用于在应用数据库迁移前检查待处理迁移,涵盖架构引用、回滚完整性、破坏性操作、幂等性和命名,并按严重程度和位置报告问题。
主要功能
- 01查找待处理迁移文件
- 02检查外键和列默认值
- 03验证回滚操作完整性
- 04标记破坏性操作
- 05检查幂等性和命名规范
- 06按严重程度和位置报告问题
适用场景
- 01应用迁移前进行审查
- 02发现缺失的回滚语句
- 03识别不安全的架构变更
MCP 相关
使用 Ruflo MCP memory 工具查询已应用迁移记录,并存储验证模式或结果。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill migrate-validate安装后在 Claude Code 中输入/migrate-validate确认已加载。
详细介绍
迁移验证
验证所有待处理数据库迁移的正确性、安全性和最佳实践遵循情况。
适用场景
应用迁移前,尽早发现问题——引用不存在表的外键、缺少回滚 SQL、没有安全措施的破坏性操作,以及命名规范违规。
步骤
- 查找待处理的迁移——使用
Glob列出所有迁移文件,通过mcp__plugin_ruflo-core_ruflo__memory_search --namespace migrations(或memory_list)与已应用的历史记录交叉比对,找出待处理的迁移。memory_*工具系列根据命名空间路由;agentdb_hierarchical-*不会这样做(它根据层级路由),因此此处应使用memory_*。 - 解析 SQL——使用
Read加载每个待处理的.up.sql和.down.sql文件,并解析 SQL 语句 - 检查外键——验证所有
REFERENCES目标表都存在于当前架构或先前的迁移中(包括已应用和待处理的迁移) - 检查 NOT NULL 默认值——验证任何带有 NOT NULL 的 ADD COLUMN 都有 DEFAULT 值
- 检查回滚完整性——验证 UP 文件中的每个 CREATE/ALTER 在 DOWN 文件中都有对应的 DROP/ALTER
- 标记破坏性操作——对没有明确确认的 DROP TABLE、DROP COLUMN、TRUNCATE 发出警告
- 检查幂等性——验证是否使用 IF EXISTS / IF NOT EXISTS 来确保安全
- 检查命名——验证表名为复数形式,列名使用 snake_case,索引名遵循
idx_table_column规范 - 存储验证模式——有两种方式(遵循 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,存储与特定迁移编号关联的验证结果。
- 模式存储(类型化,推荐):使用
- 报告——显示错误(必须修复)、警告(应该修复)和提示(建议),并为每个问题注明文件路径和行号
CLI 替代方案
npx @claude-flow/cli@latest memory search --query "migration validation results" --namespace migrations
评论
支持 Markdown