Сравнение структур базы данных:как создать SQL-патч?

StackOverflow https://stackoverflow.com/questions/1109653

  •  12-09-2019
  •  | 
  •  

Вопрос

У меня есть две базы данных SQL Server (2000).Оба используются для одного и того же проекта, но в разных версиях.По сути, старая база данных взята из нашей тестовой среды.Новая база данных взята из среды РАЗРАБОТКИ.У нас также есть среда ПРИЕМКИ, ПРОИЗВОДСТВА и ОБСЛУЖИВАНИЯ, и все они содержат один и тот же проект.(Это наша улица разработки, мы перемещаем версии с D на T, с A на P и, наконец, M.)

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

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

http://www.adeptsql.com/

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top