2016-05-09 2 views
1

Мне нужно сравнить две базы данных MySql, я хочу сравнить две схемы MySql и узнать разницу между обеими схемами.Как сравнить две базы MySql

Я создал две переменные Old_Release_DB и New_Release_DB. В Old_Release_DB Я сохранил старую схему выпуска, чем после некоторой модификации, например, я удалил какой-то столбец, добавлен некоторый столбец, переименован в какой-либо столбец, изменилось свойство столбца, например, увеличьте размер datatype (например: varchar (10) в varchar (50)). Затем он стал новой схемой выпуска, которую я сохранил в New_Release_DB.

Теперь я хочу, чтобы имя таблицы, имя столбца, которое было изменено в New_Release_DB, и изменяется вместе с именем столбца.

Пример,

TABLE_A column_name Добавить (если он добавляется), TABLE_A column_name Удалить (если он будет удален), TABLE_A column_name Изменение (если его свойство изменилось)

Я пытаюсь его в скрипте оболочки в Linux, но я не получаю его. Пожалуйста, дайте мне знать. Если я могу использовать другой скрипт, например python или java.

+1

Просто возьмите mysqldump обеих баз данных и сравните 2 файла '.sql'. Я думаю, что это должно легко решить вашу проблему. – JRodDynamite

+0

SQLyog .. сравнение визуальных данных и схема syc могут это сделать. –

+0

Как использовать mysqldump? – anika

ответ

0

Вы можете сравнить две базы данных, создав дампы базы данных: mysqldump -u your-database-user your-database-name> database-dump-file.sql - если вы используете пароль для подключения к базе данных, также добавьте параметр -p в команду mysqldump.

А потом сравнить их с дифф: дифф новой базы данных дамп-file.sql старой базы данных-самосвала file.sql По желанию, вы можете сохранить результаты выполнения различий в файл с STDOUT перенаправления путем добавления > databases_diff к предыдущей команде.

Однако для такого сравнения потребуется некоторая работа с глазами - вы получите буквально разницу между двумя файлами.

0

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

1

Посмотрите mysqldiff

Он может также производить nessecerary операторы SQL для преобразования из одной схемы к другой (или наоборот)

Документация по ссылке выше является довольно хорошим. И начать работу так же просто, как:

mysqldiff [email protected] [email protected] test:test 
Смежные вопросы