Сравнение структур базы данных: как создать патч SQL? - PullRequest
0 голосов
/ 10 июля 2009

У меня есть две базы данных SQL Server (2000). Оба используются для одного и того же проекта, но разных версий. По сути, старая база данных взята из нашей среды TEST. Новая база данных из среды РАЗВИТИЯ. У нас также есть среда ACCEPTANCE, PRODUCTION и MAINTENANCE, и все они содержат один и тот же проект. (Это наша улица развития, перевод версий с D на T на A на P и, наконец, M.)

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

Но, как инженер-программист, я просто ленив по дизайну. Итак, есть ли какой-нибудь простой инструмент, который будет сравнивать две структуры базы данных и сам генерировать скрипт обновления?

(Только для изменения структуры, кстати. Никаких манипуляций с данными!)

Ответы [ 4 ]

3 голосов
/ 10 июля 2009

Да, на мой взгляд, лучшим является Красные Ворота

SQL Toolbelt, который они предлагают, очень хороший, который включает в себя набор инструментов, или вы можете просто получить SQL Compare самостоятельно. Не бесплатно (за исключением 14-дневной пробной версии), но стоит денег

2 голосов
/ 10 июля 2009

На работе мы использовали несколько инструментов; AdeptSql Diff и мы пробовали Redgate-что-то. AdeptSql был значительно дешевле, чем Redgate, и, хотя у Redgate было много отличных наворотов, поскольку у нас уже был Adept, мы решили остаться с ним.

http://www.adeptsql.com/

Извините, что не знаю бесплатных инструментов; Я знаю, что у Редгейта, по крайней мере, есть пробный период.

2 голосов
/ 10 июля 2009

Взгляните на Сравнение SQL в Red Gate .. в полной мере жить безопаснее

1 голос
/ 27 января 2012

Я использовал инструмент командной строки *nix с именем sqlt-diff, который использует Perl SQL :: Translater (SQLFairy) для генерации различий между схемами базы данных SQL.

https://metacpan.org/pod/distribution/SQL-Translator/script/sqlt-diff

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

...