Сравните различия в базе данных и получите вывод SQL - PullRequest
0 голосов
/ 08 сентября 2011

Мне нужна возможность сравнить две похожие базы данных. Одна будет немного новее другой и будет иметь изменения в структуре базы данных, а также, возможно, в ее содержимом.

До сих пор я пытался использовать ликвидазу, но, похоже, она не сравнивается должным образом Я также попробовал модуль MySQL Diff Perl, который работает, но не учитывает содержимое.

Основной вопрос:

Кто-нибудь знает какие-либо решения, которые будут возвращать SQL как для структурных, так и для контентных различий и генерировать сценарий SQL?

Немного больше информации:

Предполагаемое использование для этого - при обновлении и установке модов на phpBB, чтобы форум мог быть включен в процесс сборки вместе с остальной частью нашего сайта. Который имеет 4-х уровневый процесс (локальный, разработка, подготовка, производство).

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

При установке модов и обновлений иногда изменяется структура базы данных, а также данные в таблицах, особенно при добавлении вещей, требующих дополнительных разрешений и т. Д.

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

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Я действительно нашел способ сделать это через Navicat для MySQL , используя Сервис> Синхронизация структуры.

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

Затем выполните различия данных, которые вы можете использовать для синхронизации данных.

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

Обратите внимание, что я использую версию лицензии, поэтому не уверен, что ее можно бесплатно использовать.

0 голосов
/ 08 сентября 2011

Вы можете использовать SQLyog Инструмент синхронизации баз данных для синхронизации двух баз данных, как односторонних, так и двусторонних.На сегодняшний день это лучший инструмент для сравнения данных для MySQL GUI.Синхронизация схем для сравнения схем между двумя базами данных.

Оба инструмента могут генерировать сценарии SQL.

...