问题描述
正在使用Terraform创建环境,并希望在Azure DevOps发布管道中部署Azure Sql Server。他使用Terraform是为了方便在不使用时销毁所有部署的资源并降低成本。
因此,他决定将Azure Sql Server添加到Terraform文件中,但需要将信息存储到备份文件中,以便可以使用管道中的”Azure SQL Database deployment”任务进行还原。然而,他没有找到任何迹象表明可以在Azure DevOps中创建.DACPAC文件。
所以,有没有办法在Azure DevOps发布管道中创建并保存数据库备份(最好是存储在Blob存储中)?他查看了Azure Shell(az sql database),但没有找到有价值的信息。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
根据作者的这篇文章https://markheath.net/post/backup-restore-sql-database-azure-cli,可以使用az sql db export
和az sql db import
命令将数据库保存为BACPAC文件,并在干净的数据库上进行还原。但是这里有一个问题 – Azure CLI任务v1.0使用的是CMD,所以很难从Bash语法转换为CMD语法,而Azure CLI任务v2.0预览版中有选择Bash作为解释器的选项,但没有安装az(这可能是一个错误,并且已经在uservoice上发布了一个帖子),所以如果想使用它,就需要将脚本改写为Powershell。
所以,这不完全是我要找的,但它能完成工作。
方案2
使用Azure DevOps的Azure SQL Database部署任务可以直接从Azure SQL Server创建.DACPAC文件。
Azure DevOps提供了一个名为”Azure SQL Database deployment”的任务,可以直接从Azure SQL Server创建.DACPAC文件。以下是使用该任务的步骤:
1. 在Azure DevOps发布管道中,添加一个新的任务。
2. 在任务列表中,搜索并选择”Azure SQL Database deployment”任务。
3. 配置任务的参数,包括连接到Azure SQL Server的详细信息和要创建.DACPAC文件的数据库。
4. 运行发布管道,任务将连接到Azure SQL Server并创建.DACPAC文件。
请注意,使用此任务需要正确配置连接到Azure SQL Server的详细信息,并具有足够的权限来执行所需的操作。
方案3
使用Azure PowerShell模块可以在Azure DevOps中创建.DACPAC文件。
Azure PowerShell模块提供了一组命令,可以在Azure DevOps中创建.DACPAC文件。以下是使用Azure PowerShell模块的步骤:
1. 在Azure DevOps发布管道中,添加一个新的任务。
2. 在任务列表中,搜索并选择”PowerShell”任务。
3. 配置任务的参数,包括运行脚本的Azure PowerShell模块版本和要创建.DACPAC文件的数据库。
4. 编写一个PowerShell脚本,使用Azure PowerShell模块的命令来创建.DACPAC文件。
5. 运行发布管道,任务将执行PowerShell脚本并创建.DACPAC文件。
请注意,使用此任务需要正确配置Azure PowerShell模块的版本,并具有足够的权限来执行所需的操作。
方案4
使用Azure CLI任务可以在Azure DevOps中创建.DACPAC文件。
Azure CLI任务提供了一组命令,可以在Azure DevOps中创建.DACPAC文件。以下是使用Azure CLI任务的步骤:
1. 在Azure DevOps发布管道中,添加一个新的任务。
2. 在任务列表中,搜索并选择”Azure CLI”任务。
3. 配置任务的参数,包括运行命令的Azure CLI版本和要创建.DACPAC文件的数据库。
4. 编写一个Shell脚本,使用Azure CLI命令来创建.DACPAC文件。
5. 运行发布管道,任务将执行Shell脚本并创建.DACPAC文件。
请注意,使用此任务需要正确配置Azure CLI的版本,并具有足够的权限来执行所需的操作。
方案5
使用自定义脚本任务可以在Azure DevOps中创建.DACPAC文件。
自定义脚本任务允许您在Azure DevOps中执行自定义脚本来创建.DACPAC文件。以下是使用自定义脚本任务的步骤:
1. 在Azure DevOps发布管道中,添加一个新的任务。
2. 在任务列表中,搜索并选择”自定义脚本”任务。
3. 配置任务的参数,包括要运行的脚本和要创建.DACPAC文件的数据库。
4. 编写一个脚本,使用适当的命令来创建.DACPAC文件。
5. 运行发布管道,任务将执行脚本并创建.DACPAC文件。
请注意,使用此任务需要正确配置脚本和所需的命令,并具有足够的权限来执行所需的操作。
以上是几种在Azure DevOps发布管道中创建.DACPAC文件的方法。根据您的需求和环境,选择适合您的方法并配置相应的任务参数。