migrationpilot

migrationpilot

mickelsamuelMIT
3 звёзд
MigrationPilot — статический анализатор SQL-миграций PostgreSQL. Он проверяет код миграции до того, как тот попадёт в базу данных. Использует настоящий парсер PostgreSQL (libpg-query), поэтому точно определяет все блокировки, которые возникнут при выполнении. Разработчики применяют MigrationPilot, чтобы находить опасные операции: создание индексов без CONCURRENTLY, добавление ограничений без проверки существующих данных, выполнение DDL без установки lock_timeout. Сервер выдаёт оценку риска по шкале до 100, подсвечивает критичные нарушения и предлагает безопасные альтернативы. При этом не требуется подключение к базе — анализ выполняется на основе SQL-скрипта. Достаточно запустить одну команду — и вы получите отчёт с деталями по каждому из 83 правил. Инструмент также умеет автоматически исправлять часть проблем флагом --fix.

Установка

npx -y migrationpilot

Характеристики

Общее

  • СтатусСообщество
  • Разработчикmickelsamuel
  • ЛицензияMIT

Технологии

  • Языки
    TypeScript
  • Транспорт
    stdio

Описание

Возможности

  • Парсит SQL с помощью реального парсера PostgreSQL для точного анализа блокировок
  • Проверяет миграции по 83 правилам безопасности, сгруппированным по степени риска
  • Вычисляет общий риск в баллах от 0 до 100 и присваивает цветовую метку (зелёный/жёлтый/красный)
  • Указывает на каждую проблему с кодом правила, описанием и строкой в файле
  • Предлагает безопасную альтернативу для каждого нарушения
  • Автоматически исправляет часть нарушений при запуске с флагом --fix
  • Работает как CLI для одного файла, для директории с шаблоном и через stdin (поток из фреймворков вроде Django, Prisma, Knex)
  • Интегрируется в CI/CD через GitHub Action: проверяет каждый PR, оставляет комментарий с результатами и может генерировать SARIF для GitHub Code Scanning
  • Используется как Node.js библиотека в собственных скриптах
  • Не требует подключения к базе данных и не вносит изменений — только анализ

Как подключить

1. Установите пакет через npx (скачивание и запуск без глобальной установки): npx -y migrationpilot

2. Настройте MCP-сервер в вашем клиенте. Для Claude Desktop добавьте в файл конфигурации (claude_desktop_config.json) этот объект в раздел mcpServers: {"mcpServers":{"migrationpilot":{"command":"npx","args":["-y","migrationpilot"]}}}

3. После сохранения перезапустите Claude Desktop, чтобы сервер стал доступен.

Примеры запросов

  • «Проанализируй файл 002_add_index.sql на риск блокировок и покажи отчёт со всеми нарушениями»
  • «Автоматически исправь все тривиальные проблемы в migration.sql, остальные подсвети»
  • «Проверь все файлы миграций из папки migrations/ с шаблоном *.sql, дай сводку по уровню риска»
  • «Вот SQL миграции: CREATE INDEX CONCURRENTLY... Проверь его на соответствие правилам и скажи, можно ли его выполнять в продакшене»

Технические детали

  • Язык: TypeScript
  • Транспорт: stdio
  • Лицензия: MIT
  • Совместимые клиенты: Claude Desktop, любой MCP-клиент с поддержкой stdio
  • Категория: PostgreSQL

Поделиться