Файлы пользовательских скриптов в проекте сервера VS2012 Sql
Я должен перенести базу данных в проект сервера VS2012 sql. Я уже импортировал всю схему из целевой базы данных. Начальные данные будут добавлены в сценарий после развертывания в проекте. Однако я также предвижу множество сценариев, добавляемых разработчиками при работе над различными улучшениями. Это могут быть сценарии изменения схемы, а также данные, сценарии добавления и удаления. И все они должны запускаться после развертывания и в порядке, в идеале по именам сценариев с выполнением 1.0.0.0, затем 1.0.0.2 и затем 1.0.1.0. Проект SQL Server не позволяет использовать несколько файлов после развертывания. Все, что я могу найти в Интернете, это как создать проект, в то время как никто не говорит о создании структуры, которая будет учитывать изменения (скрипты изменения), сделанные разработчиками в течение различных циклов выпуска. Может кто-нибудь помочь мне здесь?
2 ответа
Сравнение схем избавляет от необходимости кодировать собственные сценарии изменения. Сравнение схем автоматически создает сценарий изменения для вас, сравнивая схему проекта базы данных с вашим сервером базы данных.
Вот хороший обзор схемы сравнения.
Хорошо, вот что я сделал до сих пор.
- Следил за входами Кейта и создал проект
- Сравнение используемой схемы для обработки изменений на основе схемы
- Создан один мастер-скрипт с Build Action = PostDeploy
- Для сценариев данных созданы папки с именами версий для разделения сценариев на основе разных версий.
- Добавлена запись этих сценариев в сценарий основного пост-развертывания с синтаксисом:r Folder\MyScript.sql
В настоящее время это будет работать, но должен быть лучший способ обеспечить автоматический выбор пользовательских сценариев в папках в сценарии Master после развертывания. При таком решении каждый раз, когда разработчик добавляет скрипт, необходимо сделать запись в сценарии основного развертывания (:r MyCustomeDataScript.sql)
Я думаю, что, возможно, есть лучший способ сделать это, но я не знаю об этом. Я работаю над тем, чтобы найти способ автоматизировать ручной ввод новых сценариев в основной сценарий развертывания.