Я хотел спросить, возможно ли сравнить полную структуру базы данных двух огромных баз данных. У нас есть две базы данных, тот является базой данных разработки, другой производственная база данных. Я иногда забывал вносить изменения в к производственной базе данных, прежде чем мы выпустили некоторые части нашего кода, который заканчивается, что производственная база данных не имеет той же структуры, поэтому если мы выпускаем что-то, что мы получили некоторые ошибки. Существует ли способ сравнить эти два или синхронизироваться?
А как насчет http://www.mysqldiff.org/ , которое является бесплатным?
Возможно, вам понадобится инструмент, например Компаратор баз данных .
SchemaCrawler - это бесплатный платформенно-независимый инструмент, позволяющий сравнивать структуры баз данных. Обе базы данных не обязательно должны быть в сети одновременно - вы можете сохранить структуру своей базы данных в удобочитаемый текстовый файл. Сравнение выполняется с помощью стандартных инструментов сравнения.
Я бы рекомендовал автоматизировать сравнение как часть процесса сборки и развертывания, чтобы гарантировать, что ваши производственные системы никогда не устареют.
Red-Gate SQL Compare - отличный инструмент, который сделает это за вас. Я использовал это в течение многих лет с большим успехом. Это сэкономило мне тысячи часов работы.
У них также есть инструмент для сравнения данных. Продукт, о котором я упоминал выше, сравнивает схему.
www-red-gate.com
Вы можете просто сбросить их с параметром --no-data и сравнить файлы.
Не забудьте использовать опцию --lock-tables=0 для вашей производственной базы данных, чтобы избежать большой неприятной глобальной блокировки.
Если вы используете одну и ту же версию mysqldump (ваши системы dev и production должны иметь одинаковое программное обеспечение, не так ли?), то вы ожидаете получить более или менее идентичные файлы. Таблицы будут расположены в альфа-порядке, поэтому простой diff легко покажет расхождения.
Набор доступных инструментов зависит от вашей базы данных.
Для этого я использую ER / Studio Embarcadero. Он имеет функцию сравнения и слияния.
Есть много других, например Toad для MySQL, которые также имеют функцию сравнения. Также согласен с предложением Red-Gate, но никогда не использовал его для MySQL.
Я определенно выбрал бы AdeptSQL , если вы используете MSSQL. Это наименее привлекательный, но самый талантливый инструмент сравнения баз данных среди тех, что я пробовал. Он может сравнивать как структуру, так и данные. Он сообщает вам, какие таблицы существуют в одной базе данных, но не существуют в другой, сравнивает структуру и данные общих таблиц и может создать сценарий для их синхронизации. Это не бесплатно, но имеет 30-дневную пробную версию (насколько я помню)
Попробуйте dbForge Scheme Compare для SQL сервера. Он может сравнивать и синхронизировать любые схемы баз данных. Быстро, легко, всегда выдает правильный результат. Посмотрите, как она работает на вашей базе данных!
SQL Examiner Suite 2010 сравнивает базы данных MySQL (как схемы, так и данные)