【问题标题】:How to deploy SQL Database in Bitbucket pipeline to Azure如何将 Bitbucket 管道中的 SQL 数据库部署到 Azure
【发布时间】:2020-09-29 06:00:13
【问题描述】:
就当前问题征求意见或方向。
我们正在使用 bitbucket 管道将 ci/cd Web 应用程序部署到 Azure。现在剩下的是 - 数据库,也托管在 Azure 上。
根据我的研究 - SQL 数据库项目部署的所有内容通常使用 Azure DevOps 管道(连接到 github 存储库,允许多个环境,具有内置的 SqlAgent 允许通过 dacpac 文件将 SQL db 部署到目标服务器。它允许 CI 与每次签到,每次推送更改。太好了!
但是如果不能(出于某种原因)使用 Azure DevOps 而必须使用 Bitbucket 管道 怎么办。那可能吗?如何?通过脚本?一个工具?在命令行中调用?任何帮助 - 非常感谢。
【问题讨论】:
标签:
deployment
continuous-integration
azure-sql-database
bitbucket-pipelines
【解决方案1】:
确实,在 Azure DevOps 中更容易部署 (Azure) SQL 数据库,因为 Azure DevOps 提供了许多任务(包括您可以在 Microsoft MarketPlace 中找到的第 3 方自定义任务)。
但是,无论您将使用什么工具,您都应该能够做到这一点,了解特定服务的部署概念。
我不太了解 BitBucket,但我敢打赌该产品能够执行一些命令,包括 PowerShell 命令。如果是这样,您必须在管道中执行 2 个步骤才能发布 Azure SQL 数据库:
1)创建服务器和(空)数据库——也许 BitBucket 提供了一些在 Azure 中创建服务的任务(从 ARM 模板或其他方式)。如果没有 - 您始终可以使用 CLI 或 PowerShell 来执行此操作。更多信息:az cli server
2) 部署数据库或对其进行更改。这一步总是将 DACPAC 文件(它是 SQL Server 数据库项目的编译版本)与服务器上的目标数据库进行比较。结果是必须针对目标数据库执行的 T-SQL(差异)脚本。只有一种方法可以做到这一点 - sqlpackage.exe - Microsoft 提供的工具。您可以在 Internet 上找到 whole documentation here 以及大量有关如何使用它的示例。
让我知道这是否有帮助。