Файлы пользовательских скриптов в проекте сервера 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)

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

Другие вопросы по тегам