微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

解决方法

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

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

这里是你的场景

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

enter image description here

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

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

2. 使用构建上的分支过滤器和发布上的工件过滤器将帮助您仅通过一个构建和一个发布来管理这种情况。

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

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

enter image description here

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。