在Azure DevOps发布管道中,如何在SQL Server数据库部署任务期间执行Script.PreDeployment.sql
和Script.PostDeployment.sql
文件?
在发布管道中,我们有一个数据库部署阶段,其中有一个SQL Server数据库部署任务。这些任务很好地发布了我们的DACPAC文件。但是我不知道如何执行部署前和部署后脚本。
这两个脚本都包含在项目中,并且都将相应的BuildAction设置为PreDeploy和PostDeploy。但是在dacpac部署的日志中,没有迹象表明文件已在运行-我那里有一堆PRINT
语句。
答案 0 :(得分:3)
我还通过使用SSDT方法来处理部署后脚本,对于部署,我正在Azure管道中使用 Azure SQL DacpacTask 任务,因此您只需要创建部署后脚本正如您可以在映像中看到并保存它一样,在运行Azure构建后,它将把它添加到Azure Pipeline工件中,该工件在上述发布管道下的上述蔚蓝任务中会自动执行。首先,它将执行数据库部署,然后运行后部署脚本。它对我有用。
答案 1 :(得分:0)
您可以使用SQLCMD
工具使用命令行任务来运行那些部署前和部署后SQL脚本。
其执行脚本的参数为:
-S {database-server-name}.database.windows.net
-U {username}@{database-server-name}
-P {password}
-d {database-name}
-i {SQL file}
如果将前/后部署脚本存储在工件中,则可以像-$(System.DefaultWorkingDirectory)/drop/Script.PreDeployment.sql
一样指定-i。