首页 > 解决方案 > 如何从 Dacpac for Azure Pipeline CI/CD 中自动排除仅开发表?

问题描述

我有使用 Dacpacs 的 Azure 数据库的 Azure Devops。我可以轻松地将架构从 Dev 部署到 Test 和 Prod。

但是我有一个问题。开发数据库有几个我不想部署到测试和生产的仅限开发表。

使用 Visual Studio 手动排除某些表会导致人为错误,并且某些不需要的表已部署到 prod。

是否有确保仅从 Dacpac 中自动排除仅开发表的解决方案?

如果表名以“Temp*”开头,是否可以自动过滤?

标签: visual-studioazure-sql-databasedacpac

解决方案


不,您不能要求它只包含某些对象类型。是的,您可以要求它排除某些对象类型 (/ p:ExcludeObjectTypes ),允许您过滤到您想要的内容,同时消除其他任何内容。使用 DacFx API 的编程范式,您可以完成更有针对性/方便的事情,但它需要编程代码。

您可以使用 sqlPackage.exe 来限制修改,方法是使用 /p:ExcludeObjectTypes 参数来指示您不想部署的种类。

使用以下示例:/p:ExcludeObjectTypes="StoredProcedures;ScalarValuedFunctions;TableValuedFunctions"

以下是可能的 ExcludeObjectTypes 参数列表:https ://docs.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.dac.objecttype?view=sql-dacfx-150


推荐阅读