【问题标题】:How to deploy database to multiple times with different variables如何使用不同的变量多次部署数据库
【发布时间】: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


    【解决方案1】:

    我正在使用将被执行的dynamically load in different scripts 变量。但是我应该直接使用脚本中的变量来确定 if-else 样式的行为。否则变量 get 的使用会在 dacpac 文件中烘焙。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-14
      • 2021-07-12
      • 2022-01-11
      • 2020-07-19
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多