0

我目前正在使用 SqlPackage.exe通过命令行自动部署我的应用程序数据库,但无法找到更新我的数据层应用程序版本的方法

(发展,当然……)

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

我正在使用 /Action:Publish 来推送我新建的 *.dacpac,但版本始终保持在 v1.0.0.0,如果这是不可能的?如何更改 ExtendedProperty?

我只想通过查看数据库来参考安装的版本。

有任何想法吗?

4

2 回答 2

1

包含

/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 没有报告任何漂移。)

于 2016-02-03T02:43:36.447 回答
0

在您的数据库项目上转到项目设置,有一个输出类型部分,单击“数据层应用程序(.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]
于 2013-11-08T08:08:37.940 回答