【发布时间】:2016-08-12 07:57:06
【问题描述】:
我使用 Octopus deploy 和 DacPac 在同一台服务器上部署数据库两次。 它们具有不同的名称并已成功部署。 仅在发布命令中,我为同一个变量赋予了不同的值,但它们都使用第二个值。
部署.ps1:
print 'deploying first'
& SqlPackage.exe /a:Publish /sf:$DacPacFile /tcs:$ConnectionString /v:SchemaName="First"
print 'deploying second'
& SqlPackage.exe /a:Publish /sf:$DacPacFile /tcs:$ConnectionString /v:SchemaName="Second"
两者最终都使用值Second。
所以似乎第二个以某种方式覆盖了第二个。文中有后记打印了SchemaName的值:using '$(SchemaName)'
控制台打印输出顺序如下:
deploying first
using Second
deploying second
using Second
SQLCMD 变量的默认值为 Second,因此我将其更改为 Third,默认值被忽略,应该如此。
编辑:
我意识到它会创建一个用于两种部署的 dacpac 文件。这对于如何使用变量很重要。因为它们用于在部署中包含其他 .sql 文件。
所以我每次发布都需要一个 dacpac 文件。
【问题讨论】:
标签: database variables sql-server-data-tools sqlcmd octopus-deploy