Лучшие практики для управления жизненным циклом любой базы данных независимо от технологии:
- Вы сможете построить свой проект за один шаг. Это включает в себя запуск модульных тестов, интеграционных тестов, регрессионных тестов и расширенного тестирования ваших миграций. (Это, конечно, пункт 2 в Тесте Джоэла .)
- Соответственно, вы сможете развернуть изменения базы данных за один шаг.
По крайней мере, вы должны получить что-то из вашей автоматической сборки, которую вы можете запустить, без настройки, на своем производственном сервере, чтобы обновить базу данных до новой версии при обновлении вашей программы. Миграция Ruby on Rails - хороший пример того, как это нужно сделать.
К сожалению, в проектах баз данных SQL Server 2005 используется совершенно другой подход, который, насколько я вижу, совершенно несовместим с этими принципами. Они предлагают «поэтапное развертывание», но, похоже, это полностью основано на инструментах сравнения схем. Сравнения схем полезны в качестве отправной точки, но есть много способов рефакторинга базы данных, которые они не могут обработать, и чаще всего вам придется настраивать их (процесс, который усложняется из-за многословности, труден читать, код спагетти, который они генерируют.)
Я написал пост в блоге, где более подробно рассмотрю эти вопросы .