Моя команда оценивает инструменты и процессы для управления миграцией базы данных / рефакторинг базы данных, как описано Martin Fowler, Pramod Sadalage, et. и др. Мы заинтересованы в автоматизированных, воспроизводимых, тестируемых процессах, поэтому нас не интересуют такие методы, как ручной запуск SQL Compare при каждом развертывании. В настоящее время мы используем CruiseControl.NET для непрерывной интеграции.
Наша производственная среда имеет несколько серверов баз данных SQL Server 2000 с репликацией между ними. Таким образом, наши миграции будут вносить изменения в схему как на исходном, так и на целевом сервере баз данных.
Чтобы выполнить такую миграцию с помощью такого инструмента, как dbdeploy, кажется, нам нужно запустить миграцию на один из серверов, и нам нужно будет добавить другие серверы в качестве связанных серверов. Таким образом, один сценарий, работающий на главном сервере, может выполнить DDL для любого из связанных серверов.
У меня такой вопрос: будет ли этот подход считаться лучшей практикой, или есть ли лучший метод применения миграций, затрагивающих несколько серверов баз данных?