Само собой разумеется, что вам нужно автоматизировать запуск сценариев изменения базы данных - проблема в том, как вы решаете, что запускать. Ответ заключается в том, что вам необходимо сохранить версию схемы в базе данных (или в метаданных базы данных) и выбрать, какие сценарии следует запускать соответствующим образом - будь то для создания базы данных с нуля или для внесения соответствующих изменений.
Мое решение состоит в том, чтобы полностью сохранить содержание схемы базы данных в коде. Я думаю, что это лучшая версия написанной мной работы:
Как создать «встроенный» файл базы данных SQL 2008, если он не существует?
Учитывая достаточно умный код для обновления схемы либо в потоке, либо в вашем приложении, либо в его собственном консольном приложении, вы сможете интегрировать автоматизированные изменения схемы в сценарии сборки CI.
Я гонялся за этим немного дальше, так как написал выше - оказывается, что то, что я делаю, не отличается от Ruby Migrations (я думаю, что нечто подобное также присутствует в Subsonic), за исключением того, что я этого не делаю в настоящее время есть какая-либо «отключенная» возможность отменить изменение схемы (интересная идея, которая меня беспокоит по поводу наличия потенциально деструктивного кода «вживую»). Существует проект с открытым исходным кодом .NET Migrator.net , который выглядит полезным, но я не уверен, насколько активно он поддерживается.
Добавление
С тех пор, как я написал этот код сущностной платформы, он впервые появился, и они начинают продвигаться вперед с миграциями - так что теперь это стоит посмотреть. Тем не менее, я не думаю, что он еще там, и как некоторые другие варианты, которые я видел, это не просто. Мне нужно собрать вещи и сделать их доступными!