2012-04-12 2 views
1

Есть ли способ проверить эквивалентность двух DDL?DDL эквивалентность

Чтобы описать проблему, я столкнулся:

Получил MySQL БД и приложение squeryl на основе, которая работает с ним. Я хочу проверить, если db находится в правильном состоянии (в соответствии с DDL, созданным Schema.printDdl) до (или в то время) запуска приложения (если кто-то забыл создать патч или что-то еще).

Любые идеи, как это можно сделать?

+2

Мы используем 'mysqlexport --no-data' и разграничиваем вывод с файлом. – Konerak

+0

@ Konerak проблема в том, что 'mysqlexport' и' Schema.printDdl', вероятно, будут генерировать очень разные ddls: порядок операторов, пробелов/вкладок/возвратов/числовых скобок/etc. Есть ли способ программно проверить, являются ли они по существу одинаковыми? – folone

+0

Ack, свалка. Да. – Konerak

ответ

1

Я использую SQLyog для этой цели. Он имеет инструмент синхронизации схемы, который вы также можете использовать для простого сравнения структуры двух баз данных.

Существуют также другие аналогичные инструменты, например. TOAD for MySQL.

0

Вы можете использовать database project functionality в dbForge Studio для MySQL.

  1. Создайте проект и добавьте существующий файл (SQL-скрипт).
  2. Назначьте подключение к базе данных и нажмите «Новое сопоставление схемы» во всплывающем меню проекта.

Это поможет вам сравнить, найти различия и синхронизировать проект базы данных (сценарий SQL в вашем случае) с необходимой базой данных.

Смежные вопросы