Как сравнить структуры двух MySQL баз?

Здравствуйте все!


Есть 2 базы, почти идентичные по структуре, но с некоторыми отличиями.

Подскажите более-менее простые (готовые) способы сравнения баз?

www.sqlmanager.net/en/products/studio/mysql знаю, но у меня мак и виртуальной винды не установлено. А нужно срочно.

Может php скрипты готовые есть или онлайн-сервисы.


Никак не могу толкового в инете ничего найти.


Спасибо!
  • Вопрос задан
  • 16966 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
это я делал когда-то для синхронизации структуры бд.
без контроля версий, конечно, но умеет добавлять/изменять таблицы и поля.
в принципе, никто не мешает прикрутить туда логи, бекапы, создание альтеров/диффов в виде отдельных файлов и прочие вкусности, но на момент написания это было не нужно.
удаление таблиц и полей отсутствует намеренно, а не от лени, написано левой задней ногой в лучших традициях пхп-лапши :).

да, я на скорую руку убрал оттуда зависимости, а протестировать сейчас негде, потому мог слегка поломать.
© я

ну и вообще сама статья, и комментарии к немй как-раз по этой теме.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
lafayette
@lafayette
Поможет дамп только структур обоих баз (без данных) и сравнение их любой утилитой сравнения текстовых файлов.
Дамп структуры делается так:
mysqldump -d -u root -p databasename > databasename.sql
Ответ написан
zzr
@zzr
SchemaSync для mysql
работает из консоли, сгенериует прямой и revert патчи, описывающие разницу между базами, которые можно тут же и применить.
Ответ написан
@overherz
https://www.devart.com
можно пользоваться бесплатно для себя

жалко, что только под винду
Ответ написан
Комментировать
@DVLev
Можно использовать Compalex

Бесплатная и работает на любой платформе.

1327b858-5488-11e5-856a-96b139c7b938.png

Тут демо demo.compalex.net
Ответ написан
knekrasov
@knekrasov
Вообще интересная мысль для задачки Just for fun.
Хотя на самом деле не совсем понятно, что в итоге нужно получить: просто отчет о недостающих полях (в предположении о совпадении имен таблиц) или комплексный анализ графов отношений (плюс поиск соответствий между таблицами двух БД).
Ответ написан
Gibbzy
@Gibbzy
У меня есть безумная идея )

Берем программму mysql workbench. Из первой базы строим Err — диаграмму, потому пытаемся эту диаграмму накатить на вторую базу, в процессе эта замечательная программа должна показывать различия в базах и что она хочет поменять.
Ответ написан
В Navicat есть функция синхронизации структуры между двумя базами — таблицы, индексы, триггеры итд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы