Развертывание проекта базы данных VS 2010 с помощью MSBuild и TeamCity

Можно ли развернуть проект базы данных VS 2010 с помощью TeamCity?

Я создаю все свое решение и развертываю веб-сайт на своем сервере, все работает нормально.

Последний шаг, который я хочу запустить, - это развертывание проекта базы данных, который генерирует sql-скрипт и развертывает его.

У меня есть параметр «Создать сценарий развертывания (.sql) и развернуть в базе данных», выбранный в качестве действия развертывания, моя цель конфигурации настроена на создание и развертывание проекта базы данных, но я просто не могу понять, как получить TeamCity и MSBuild, чтобы запустить его.


person ozz    schedule 02.07.2012    source источник


Ответы (2)


Чтобы это работало, необходимо установить Visual Studio.

Для исходных типов проектов базы данных SQL Server 2005/2008:

  1. Создайте этап сборки типа бегуна Visual Studio для построения решения.
  2. Создайте этап сборки командной строки типа runner. Установите для параметра «Исполняемая команда» значение C:\Program Files\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.exe. Установите для параметров команды значение /a:Deploy /dd:+ /manifest:%system.teamcity.build.checkoutDir%\<PROJECT PATH>\sql\debug\<PROJECT NAME>.deploymanifest. (См. здесь для VSDBCMD. Параметры exe).

Для проекта базы данных SQL Server, предоставляемого SQL Server Data Tools или Visual Studio 2012/2013:

  1. Создайте этап сборки типа бегуна Visual Studio для построения решения.
  2. Создайте этап сборки командной строки типа runner. Установите для параметра «Исполняемая команда» значение C:\Program Files\Microsoft Visual Studio 10.0\Microsoft SQL Server Data Tools\sqlpackage.exe. См. здесь для sqlpackage.exe параметры. Вот пример с настройками развертывания, хранящимися в файле XML (созданном с помощью параметра публикации): /Action:Publish /SourceFile:%system.teamcity.build.checkoutDir%\<PROJECT PATH>\bin\Debug\<PROJECT NAME>.dacpac /Profile:%system.teamcity.build.checkoutDir%\<PATH TO PROJECT>\PublishSettings.xml.
person Keith    schedule 07.12.2012

Поскольку сегодня за мой вопрос проголосовали, я возвращаюсь к тому ответу, который нашел.

Я сделал следующее:

  • создал шаг развертывания в моей сборке
  • указал на мой проект базы данных VS (файл .dbroj)
  • введены следующие параметры командной строки: / t: Deploy / p: TargetDatabase = MyDBName /P:Configuration=%env.Configuration%

Редактировать 16/11/12: еще один голос, так что вернемся к нему еще раз. С тех пор, как я разместил это, все стало немного яснее. Изначально я запускал TeamCity на своем компьютере разработчика.

Когда я пришел переместить его на сервер, единственный способ заставить развернуть базу данных работать - это установить Visual Studio на сервер, что было проблемой.

person ozz    schedule 27.09.2012
comment
Если вы развертываете проект SSDT, вам потребуется только установить DacFX, так как sqlpackage.exe включен в него. Не пробовал, но должно работать. blogs.msdn.com/b/ssdt/archive/2013/05/03 / - person Trondh; 09.06.2013
comment
@Trondh нет, это был проект базы данных VS 2010 - person ozz; 19.07.2013