总体情况:我们使用Azure DevOps发布流程(目前我们在设计师中创建步骤,而不是YAML管道)。我们需要发布到3个具有不同数据库的环境。发布过程的一部分是从DACPAC文件中部署数据库。由于使用SqlPackage.exe直接发布到数据库不够透明(您无法看到和审查实际的SQL脚本),因此我们想要分成两个阶段进行发布:
- 从DACPAC创建SQL脚本并审核
- 经过批准后,从之前生成的脚本运行应用程序和数据库部署。
- 将脚本发布为构建工件 - 这不起作用,因为要生成脚本,我需要连接到数据库,而连接到生产数据库不应该是构建过程的一部分。
- 将Artifact发布到Azure Pipelines作为发布步骤 - 它没有允许在发布时执行,只能在构建时执行。
- 将Artifact发布到文件共享 - 我不确定这究竟是如何工作的,文档也不是很好。此外,在我们的基础设施中设置常规的Windows文件共享可能会很困难,我宁愿避免这种方法。