【发布时间】:2022-01-04 15:39:30
【问题描述】:
我继承了一个用于 dacpac 部署的 YAML 文件。 DB 部分的第一部分使用 SqlAzureDacpacDeployment,如下所示:
task: SqlAzureDacpacDeployment@1
displayName: 'Generate CL-${{ parameters.environmentDisplayName }} SQL Migration Script'
inputs:
azureSubscription: ##
authenticationType: ##
serverName: ##
databaseName: ##
sqlUsername: ##
sqlPassword:##
deployType: **DacpacTask**
deploymentAction: **Script**
dacpacFile: $(Pipeline.Workspace)/Database/ContentLibrary.dacpac
它获取 dacpac 文件,然后从中创建一个 tsql 脚本。所以我假设构建数据库架构所需的 sql 脚本
然后有一个像这样的第二个 yaml 部分:
- task: SqlAzureDacpacDeployment@1
displayName: 'Deploy CL-${{ parameters.environmentDisplayName }} SQL Migration Script'
inputs:
azureSubscription: ##
authenticationType: ##
serverName: ##
databaseName: ##
sqlUsername: ##
sqlPassword: ##
deployType: **DacpacTask**
deploymentAction: **Publish**
dacpacFile: $(Pipeline.Workspace)/Database_Migration_${{ parameters.environmentDisplayName }}/ContentLibrary.dacpac
然后这个应该将 tsql 公开到目标上,并在需要时创建内容或更新所需的位。
它所做的只是覆盖已经存在的内容,因此如果已经存在架构,那么所有约束都会引发很多错误。
我该如何修改这段代码,以便它进行更新(使数据库与 dacpac 保持同步,或者在需要时创建完整的东西,而不仅仅是在东西已经存在时覆盖)?
是因为文件的位置吗?即每段代码中的 DacpacFile 部分?
【问题讨论】:
标签: azure-devops yaml dacpac