如何使用 Azure DevOps 的 dacpac 文件帮助更改多个数据库(CD /CI 流程)

Posted

技术标签:

【中文标题】如何使用 Azure DevOps 的 dacpac 文件帮助更改多个数据库(CD /CI 流程)【英文标题】:How to change multiple databases with dacpac file help of Azure DevOps (CD /CI Process) 【发布时间】:2021-10-02 07:28:47 【问题描述】:

我厌倦了使用单个 DACPAC 文件更改多个数据库。所有数据库架构都相同。

在每次 PR 上都会更改 DacPac 文件。现在对 dacpac 文件所做的更改将反映在多个数据库上。

注意:只有模板 DB 有可用的 VS Code 更改推送到 Azure CD/CI 管道。在模板数据库中发布成功,它应该适用于所有租户数据库。

你们能否提供任何使用 Azuer DevOPs CD/CI Pipeline 的解决方案。

【问题讨论】:

我认为你可以使用这个任务:github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/… 【参考方案1】:

注意:无法对现有数据库执行导入操作。是的,您可以使用单个 .dacpac 文件对多个数据库执行导入操作,但如果您想启动第二个导入操作,它将在您的场景中创建一个或多个新数据库。

在 Azure Devops 中配置构建管道,生成 dacpac 文件,添加 Visual Studio 构建任务。需要填写一些必填字段。

为了发布 dacpac 文件,需要将其复制到工件暂存目录。为此,添加复制文件任务。为 Source Folder 字段选择构建后生成 dacpac 文件的文件夹。在内容字段中输入带有文件扩展名的 dacpac 文件名。在目标文件夹字段中输入 $(Build.ArtifactStagingDirectory)。最后一个字段使用的值是 Azure Pipelines 的预定义变量,它提供了稍后将使用 Publish Artifact 任务的工件位置。

下一个任务,发布 dacpac 文件并将配置文件发布为构建工件。这将用于发布管道。为此,添加发布构建工件任务。在“发布路径”字段中输入 $(Build.ArtifactStagingDirectory)

接下来,将其与发布管道集成。要设置工件,请单击工件框中的“添加”按钮,选择“构建”作为源类型,填写必填字段,然后单击“添加”。

这里,适合您的场景

1. 设置多个发布管道(它们将具有来自单个构建管道的相同工件) 选择工件并启用继续部署触发器(在分支上设置无过滤器)

现在,当您进行新构建时,两个版本都会自动启动。

或者,如果您希望在不同环境中更新多个数据库,您可以

2.在构建中使用分支过滤器并在发布中使用工件过滤器将帮助您通过一个构建和一个发布来管理此场景。

由于您保留了相同的数据库架构,一旦完成,您可以简单地更改您的管道并允许它们都从同一源更新,即一个具有许多分支过滤器的构建管道。

现在转到构建中的触发器选项卡,并启用持续集成。将出现分支过滤器。例如,您可以在此处添加 develop 和 master,以便从任一分支触发此构建。

完成后,当您提交到这些分支中的任何一个时,构建将被触发。

接下来,在发布管道中为每个环境或数据库设置一个 Artifact 过滤器,现在每个分支都会触发发布!同一产品无需多次构建和发布。

例如,您可以告诉生产阶段只有主分支的构建才能触发生产阶段。

【讨论】:

以上是关于如何使用 Azure DevOps 的 dacpac 文件帮助更改多个数据库(CD /CI 流程)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 powershell/Azure CLI 列出有权访问 Azure DevOps 项目存储库的用户?

如何将 Azure Policy 与 Azure DevOps 集成?

作业终止后如何将生成的文件从 Azure Databricks 导出到 Azure DevOps?

如何使用 Azure Devops CLI 下载构建工件?

如何从 Azure Devops 服务器迁移到 Azure Devops 服务中的现有组织

如何使用 Azure 自动化运行手册将 Azure devops 存储库下载为 zip 文件?