2009-07-10 1 views
0

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

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

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

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

ответ

2

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

http://www.adeptsql.com/

Мне жаль, что я не знаю, какие бесплатные инструменты экспромтом; Я знаю, что у Редгейта, по крайней мере, есть пробный период.

+0

Не беспокойтесь. Это не должно быть бесплатным. Он просто должен соответствовать бюджету, который моя команда имеет для приобретения новых лицензий на программное обеспечение. :-) –

3

Да, лучший на мой взгляд, является Red Gate

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

+0

+1, мы используем все время тоже. –

1

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

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

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

+0

sqlt-diff - бесплатный инструмент с открытым исходным кодом. Я вручную отредактировал созданные diffs, чтобы немного настроить их. – Endosynth