migrate-validate — скилл для Claude Code: проверка миграций БД
Скилл автоматически проверяет незавершённые миграции на ошибки: несуществующие внешние ключи, неполные откаты, нарушения соглашений об именовании. Ловит проблемы до того, как миграция попадёт в БД.
npx skills add ruvnet/ruflo --skill migrate-validate -a claude-codeЧто делает migrate-validate
migrate-validate сканирует все файлы миграций, находит ещё не применённые и анализирует их SQL. Проверяет, что все REFERENCES указывают на существующие таблицы, что DROP и ALTER имеют соответствующие откаты, что NOT NULL колонки получают DEFAULT значение. Флажит деструктивные операции вроде DROP TABLE и предупреждает о нарушениях соглашений: имена таблиц во множественном числе, колонки в snake_case, индексы по схеме idx_table_column.
Скилл использует ruflo-core инструменты: memory_search и memory_store для работы с историей миграций по namespace, agentdb_pattern-store для сохранения типизированных шаблонов валидации. Результаты выводятся с указанием файла, номера строки и уровня серьёзности — ошибки (обязательно исправить), предупреждения (желательно) и информационные заметки.
Устанавливается одной командой для каждой платформы: Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI или OpenCode. После установки инструмент готов проверять миграции в вашем проекте.
Какие задачи решает
- Найти внешние ключи, которые ссылаются на несуществующие таблицы
- Проверить, что каждый UP имеет полный соответствующий DOWN для безопасного отката
- Убедиться, что NOT NULL колонки получают DEFAULT при добавлении
- Выявить деструктивные операции без явного подтверждения
- Проверить соответствие соглашениям об именовании таблиц и индексов
Примеры запросов агенту
- Проверь миграции перед тем, как я их применю
- Валидируй все pending миграции на ошибки и best practices
- Найди проблемы с foreign keys и откатами в моих миграциях
Как установить migrate-validate
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill migrate-validate -a claude-code2Вручную: положить файлы
~/.claude/skills/migrate-validate/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/migrate-validate/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill migrate-validate -a codex2Вручную: положить файлы
.agents/skills/migrate-validate/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill migrate-validate -a cursor2Вручную: положить файлы
.cursor/skills/migrate-validate/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install ruvnet/ruflo migrate-validate2Вручную: положить файлы
.github/skills/migrate-validate/SKILL.md1Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill migrate-validate -a gemini-cli2Командой платформы
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-migrations/skills/migrate-validateВручную: положить файлы
.devin/skills/migrate-validate/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add ruvnet/ruflo --skill migrate-validate -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора104
Весь набор →Похожие
Вопросы о migrate-validate
Как установить migrate-validate в Claude Code?
Выполни npx skills add ruvnet/ruflo --skill migrate-validate -a claude-code. Скилл загрузится в ~/.claude/skills/migrate-validate/SKILL.md и сразу будет готов к использованию.
Что делает migrate-validate?
Сканирует ещё не применённые миграции БД и проверяет их на корректность: наличие целевых таблиц для внешних ключей, полноту откатов, наличие DEFAULT для NOT NULL колонок, соответствие соглашениям об именовании.
Какие проверки выполняются?
Валидация foreign key ссылок, проверка откатов (CREATE↔DROP, ALTER↔ALTER), идемпотентность (IF EXISTS), именование (таблицы во множественном числе, snake_case колонки, индексы по схеме idx_table_column), предупреждение о деструктивных операциях.
Исходный текст
SKILL.md · MIT
--- name: migrate-validate description: Validate pending migrations for foreign key consistency, rollback safety, and best practices argument-hint: "" allowed-tools: Read Glob Grep Bash mcp__plugin_ruflo-core_ruflo__memory_search mcp__plugin_ruflo-core_ruflo__memory_list mcp__plugin_ruflo-core_ruflo__memory_store mcp__plugin_ruflo-core_ruflo__agentdb_pattern-store mcp__plugin_ruflo-core_ruflo__agentdb_semantic-route --- # Migrate Validate Validate all pending database migrations for correctness, safety, and adherence to best practices. ## When to use Before applying migrations to catch issues early -- foreign key references to non-existent tables, missing rollback SQL, destructive operations without safeguards, and naming convention violations. ## Steps 1. **Find pending migrations** -- use `Glob` to list all migration files, cross-reference with applied history via `mcp__plugin_ruflo-core_ruflo__memory_search --namespace migrations` (or `memory_list`) to identify pending ones. The `memory_*` tool family routes by namespace; `agentdb_hierarchical-*` does NOT (it routes by tier), so use `memory_*` here. 2. **Parse SQL** -- use `Read` to load each pending `.up.sql` and `.down.sql` file and parse the SQL statements 3. **Check foreign keys** -- verify that all REFERENCES targets exist in the current schema or in prior migrations (both applied and pending) 4. **Check NOT NULL defaults** -- verify that any ADD COLUMN with NOT NULL has a DEFAULT value 5. **Check rollback completeness** -- verify every CREATE/ALTER in the UP file has a corresponding DROP/ALTER in the DOWN file 6. **Flag destructive ops** -- warn on DROP TABLE, DROP COLUMN, TRUNCATE without explicit confirmation 7. **Check idempotency** -- verify IF EXISTS / IF NOT EXISTS is used for safety 8. **Check naming** -- verify table names are plural, column names are snake_case, index names follow `idx_table_column` convention 9. **Store validation patterns** -- two paths (per ruflo-cost-tracker ADR-0001 dual-path pattern): - **Pattern store (typed, recommended)**: `mcp__plugin_ruflo-core_ruflo__agentdb_pattern-store` with `type: 'migration-validation'`. No namespace arg — ReasoningBank routes it. - **Plain store (namespace-routable)**: `mcp__plugin_ruflo-core_ruflo__memory_store --namespace migrations` for validation results tied to a specific migration number. 10. **Report** -- display: errors (must fix), warnings (should fix), info (suggestions), with file path and line number for each issue ## CLI alternative ```bash npx @claude-flow/cli@latest memory search --query "migration validation results" --namespace migrations ```
© ruvnet · MIT · ruvnet/ruflo