Обновление версии приложения уровня данных через SqlPackage.exe

В настоящее время я автоматизирую развертывание базы данных своих приложений через командную строку с помощью SqlPackage.exe, но не могу найти способ обновить версию моего приложения уровня данных.

(Развитие, конечно...)

http://msdn.microsoft.com/en-us/library/hh550080%28v=vs.103%29.aspx

Я использую /Action:Publish для отправки моего недавно созданного *.dacpac, но версия всегда остается v1.0.0.0, если это невозможно? Как насчет того, как изменить ExtendedProperty?

Я просто хочу иметь ссылку на то, какая версия установлена, посмотрев базу данных.

Любые идеи?


person jaekie    schedule 10.07.2013    source источник


Ответы (2)


В том числе

/p:RegisterDataTierApplication=true

как часть командной строки, это то, что мне помогло, чтобы SqlPackage.exe обновил версию, хранящуюся в метаданных уровня данных, с помощью публикуемой версии DACPAC.

При тестировании я обнаружил, что установка для RegisterDataTierApplication значения true выполняет обновление, если целевая база данных уже зарегистрирована. По сути, это свойство сообщает SqlPackage.exe, что DACPAC следует публиковать как пакет уровня данных, а не просто публиковать любые измененные объекты (и, следовательно, вызывать дрейф).

Итак, полная команда, которую я использую,

SqlPackage.exe /a:publish /tcs:<target connection string> /sf:<DACPAC file path> /p:RegisterDataTierApplication=true /p:BlockWhenDriftDetected=false

(Я обнаружил, что мне пришлось включить /p:BlockWhenDriftDetected=false, потому что SqlPackage.exe возвращал ошибку об обнаружении отклонения, хотя /a:deployreport не сообщал о каком-либо отклонении.)

person Tim    schedule 03.02.2016

В вашем проекте базы данных перейдите к настройкам проекта, там есть раздел Типы вывода, нажмите кнопку свойств под "Файл приложения уровня данных (.dacpac)":

В этом диалоговом окне вы можете установить номер версии, которая затем будет развернута, затем вы можете запросить эту информацию из:

SELECT TOP 1000 [instance_id]
      ,[instance_name]
      ,[type_name]
      ,[type_version]
      ,[description]
      ,[type_stream]
      ,[date_created]
      ,[created_by]
      ,[database_name]
  FROM [msdb].[dbo].[sysdac_instances]
person nojetlag    schedule 08.11.2013
comment
вот как вы меняете его в проекте. он спросил об изменении его в cmd sqlpackage. - person JarJarrr; 16.09.2015