Сравнение Схемы Базы Данных

Сравнивает две схемы БД и создает черновик миграции

Поддерживает SQL DDL и JSON/YAML описания, показывает изменения таблиц, колонок, индексов и внешних ключей.

Примеры результатов

2 Примеры

Сравнить SQL DDL и подготовить черновик миграции PostgreSQL

Показывает добавление обязательной колонки и индекса, затем формирует SQL миграции.

{
  "summary": {
    "tablesAdded": 0,
    "tablesRemoved": 0,
    "columnsAdded": 1,
    "columnsRemoved": 0,
    "columnsChanged": 0,
    "indexesChanged": 1,
    "foreignKeysChanged": 0,
    "totalChanges": 2
  },
  "migrationSQL": "ALTER TABLE users ADD COLUMN email TEXT NOT NULL;\nCREATE INDEX idx_users_email ON users (email);"
}
Показать параметры ввода
{ "sourceSchema": "CREATE TABLE users (\n id INT PRIMARY KEY,\n name TEXT\n);", "targetSchema": "CREATE TABLE users (\n id INT PRIMARY KEY,\n name TEXT,\n email TEXT NOT NULL\n);\nCREATE INDEX idx_users_email ON users (email);", "schemaFormat": "sql", "dialect": "postgresql" }

Сравнить JSON-схемы с предупреждением для SQLite

Сравнивает JSON-описания со снятием таблицы и колонки и добавляет примечание о пересборке таблицы в SQLite.

{
  "summary": {
    "tablesRemoved": 1,
    "columnsRemoved": 1
  },
  "migrationSQL": "DROP TABLE audit_logs;\n-- SQLite requires table rebuild to drop column users.email"
}
Показать параметры ввода
{ "sourceSchema": "{\n \"tables\": {\n \"users\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n },\n \"email\": {\n \"type\": \"TEXT\",\n \"nullable\": false\n }\n }\n },\n \"audit_logs\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n }\n }\n }\n }\n}", "targetSchema": "{\n \"tables\": {\n \"users\": {\n \"columns\": {\n \"id\": {\n \"type\": \"INTEGER\",\n \"primaryKey\": true,\n \"nullable\": false\n }\n }\n }\n }\n}", "schemaFormat": "json", "dialect": "sqlite" }

Ключевые факты

Категория
Разработка и Web
Типы входных данных
textarea, select
Тип результата
json
Покрытие примерами
4
API доступен
Yes

Обзор

Инструмент «Сравнение Схемы Базы Данных» позволяет быстро находить различия между двумя структурами БД и автоматически генерировать черновик SQL-миграции. Он поддерживает форматы SQL DDL, JSON и YAML, а также учитывает синтаксические особенности диалектов PostgreSQL, MySQL и SQLite. С его помощью разработчики и администраторы баз данных могут легко отслеживать изменения в таблицах, колонках, индексах и внешних ключах, минимизируя рутинную работу и риск ошибок при обновлении структуры данных.

Когда использовать

  • При подготовке скриптов миграции для безопасного переноса изменений из среды разработки в продакшен.
  • Для аудита изменений в структуре базы данных между двумя версиями приложения или ветками в Git.
  • При синхронизации декларативных моделей данных, описанных в JSON или YAML, с реальными SQL-схемами.

Как это работает

  • Вставьте текущую структуру базы данных в поле «Исходная схема» в формате SQL DDL или JSON/YAML.
  • Добавьте желаемую структуру в поле «Целевая схема».
  • Выберите формат схемы и диалект базы данных (PostgreSQL, MySQL, SQLite) или оставьте автоопределение.
  • Получите JSON-отчет со сводкой изменений (добавленные/удаленные таблицы и колонки) и готовым черновиком SQL-миграции.

Сценарии использования

Автоматическая генерация ALTER TABLE скриптов при добавлении новых полей или индексов в процессе разработки новой функциональности.
Сравнение дампов структуры базы данных до и после релиза для документирования внесенных изменений.
Преобразование декларативного описания схемы (JSON/YAML) в набор SQL-команд для обновления существующей базы данных.

Примеры

1. Генерация миграции для PostgreSQL

Backend-разработчик
Контекст
Разработчик добавил обязательное поле email и индекс для него в новую версию схемы.
Проблема
Нужно быстро получить SQL-скрипт для обновления текущей базы данных без ручного написания команд ALTER TABLE.
Как использовать
Вставить старый DDL в «Исходную схему», новый DDL в «Целевую схему», выбрать формат sql и диалект postgresql.
Результат
Инструмент выдает сводку об одной добавленной колонке и одном индексе, а также готовый SQL-скрипт: ALTER TABLE users ADD COLUMN email TEXT NOT NULL; CREATE INDEX idx_users_email ON users (email);

2. Удаление таблицы и колонки в SQLite

Мобильный разработчик
Контекст
В новой версии локальной БД приложения больше не нужна таблица логов и одно из полей пользователя.
Проблема
Сформировать миграцию для SQLite и учесть ограничения базы данных при удалении колонок.
Как использовать
Загрузить старое и новое описание схемы в формате JSON, выбрав диалект sqlite.
Результат
Инструмент генерирует команду DROP TABLE audit_logs; и добавляет комментарий-предупреждение о том, что для удаления колонки users.email в SQLite требуется полная пересборка таблицы.

Проверить на примерах

sql

Связанные хабы

FAQ

Какие диалекты баз данных поддерживаются?

Инструмент поддерживает PostgreSQL, MySQL и SQLite. Также доступна функция автоопределения диалекта на основе синтаксиса.

Можно ли сравнивать схемы в разных форматах?

Да, вы можете использовать как классический SQL DDL, так и структурированные описания в форматах JSON или YAML.

Что делает инструмент, если колонка удаляется в SQLite?

Поскольку SQLite не поддерживает прямое удаление колонок через ALTER TABLE, инструмент сгенерирует предупреждение о необходимости полной пересборки таблицы.

Генерирует ли инструмент готовый к выполнению код миграции?

Инструмент создает черновик SQL-миграции. Рекомендуется всегда проверять сгенерированный код перед его выполнением на рабочей базе данных.

Какие именно изменения отслеживаются?

Анализируются добавления, удаления и изменения таблиц, колонок, индексов и внешних ключей.

Документация API

Конечная точка запроса

POST /ru/api/tools/database-schema-diff

Параметры запроса

Имя параметра Тип Обязательно Описание
sourceSchema textarea Да -
targetSchema textarea Да -
schemaFormat select Нет -
dialect select Нет -

Формат ответа

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Данные JSON: Данные JSON

Документация MCP

Добавьте этот инструмент к конфигурации сервера MCP:

{
  "mcpServers": {
    "elysiatools-database-schema-diff": {
      "name": "database-schema-diff",
      "description": "Сравнивает две схемы БД и создает черновик миграции",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=database-schema-diff",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Вы можете объединять несколько инструментов, например: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, максимум 20 инструментов.

Если вы столкнулись с проблемами, пожалуйста, свяжитесь с нами по адресу [email protected]