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

Я хотел спросить, возможно ли сравнить полную структуру базы данных двух огромных баз данных. У нас есть две базы данных, тот является базой данных разработки, другой производственная база данных. Я иногда забывал вносить изменения в к производственной базе данных, прежде чем мы выпустили некоторые части нашего кода, который заканчивается, что производственная база данных не имеет той же структуры, поэтому если мы выпускаем что-то, что мы получили некоторые ошибки. Существует ли способ сравнить эти два или синхронизироваться?

23
задан streetparade 5 March 2010 в 19:39
поделиться

9 ответов

А как насчет http://www.mysqldiff.org/ , которое является бесплатным?

5
ответ дан 29 November 2019 в 01:22
поделиться

Возможно, вам понадобится инструмент, например Компаратор баз данных .

1
ответ дан 29 November 2019 в 01:22
поделиться

SchemaCrawler - это бесплатный платформенно-независимый инструмент, позволяющий сравнивать структуры баз данных. Обе базы данных не обязательно должны быть в сети одновременно - вы можете сохранить структуру своей базы данных в удобочитаемый текстовый файл. Сравнение выполняется с помощью стандартных инструментов сравнения.

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

1
ответ дан 29 November 2019 в 01:22
поделиться

Red-Gate SQL Compare - отличный инструмент, который сделает это за вас. Я использовал это в течение многих лет с большим успехом. Это сэкономило мне тысячи часов работы.

У них также есть инструмент для сравнения данных. Продукт, о котором я упоминал выше, сравнивает схему.

www-red-gate.com

5
ответ дан 29 November 2019 в 01:22
поделиться

Вы можете просто сбросить их с параметром --no-data и сравнить файлы.

Не забудьте использовать опцию --lock-tables=0 для вашей производственной базы данных, чтобы избежать большой неприятной глобальной блокировки.

Если вы используете одну и ту же версию mysqldump (ваши системы dev и production должны иметь одинаковое программное обеспечение, не так ли?), то вы ожидаете получить более или менее идентичные файлы. Таблицы будут расположены в альфа-порядке, поэтому простой diff легко покажет расхождения.

4
ответ дан 29 November 2019 в 01:22
поделиться

Набор доступных инструментов зависит от вашей базы данных.

Для этого я использую ER / Studio Embarcadero. Он имеет функцию сравнения и слияния.

Есть много других, например Toad для MySQL, которые также имеют функцию сравнения. Также согласен с предложением Red-Gate, но никогда не использовал его для MySQL.

1
ответ дан 29 November 2019 в 01:22
поделиться

Я определенно выбрал бы AdeptSQL , если вы используете MSSQL. Это наименее привлекательный, но самый талантливый инструмент сравнения баз данных среди тех, что я пробовал. Он может сравнивать как структуру, так и данные. Он сообщает вам, какие таблицы существуют в одной базе данных, но не существуют в другой, сравнивает структуру и данные общих таблиц и может создать сценарий для их синхронизации. Это не бесплатно, но имеет 30-дневную пробную версию (насколько я помню)

0
ответ дан 29 November 2019 в 01:22
поделиться

Попробуйте dbForge Scheme Compare для SQL сервера. Он может сравнивать и синхронизировать любые схемы баз данных. Быстро, легко, всегда выдает правильный результат. Посмотрите, как она работает на вашей базе данных!

0
ответ дан 29 November 2019 в 01:22
поделиться

SQL Examiner Suite 2010 сравнивает базы данных MySQL (как схемы, так и данные)

0
ответ дан 29 November 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: