2

我们正在努力实现 SQL 项目部署的自动化。当我使用 Visual Studio 进行架构比较时,我有一个“应用程序范围”选项,我只选择比较 SP、表、视图和函数。

现在我们正在转向 CI/CD 并想检查是否有任何方法可以限制 sqlPackage.exe 仅比较列出的对象类型并仅将更改部署到这些对象。

4

3 回答 3

1

是的,有两个选项,首先排除您不需要的所有内容 /p:ExcludeObjectTypes - 除了您感兴趣的内容之外的所有内容的 csv 列表:

https://docs.microsoft.com/en-us/sql/tools/sqlpackage?view=sql-server-2017

或者您可以不将它们放在您的项目中并使用“不要丢弃不在源 dacpac 中的对象”。

使用您在短期内所做的任何事情,目标是随着时间的推移将所有内容都包含在您的项目中。

于 2019-07-17T10:19:59.403 回答
0

您可以使用 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

请不要那个';' 如果您使用 ',' 将用作分隔符,它将不起作用(并且不会导致错误)。

于 2021-05-12T13:35:43.050 回答
0

我有多个用于 SAAS 解决方案的数据库。每个租户都有自己的数据库。我已将迁移项目配置为使用 DevOps 管道迁移多个数据库。我使用了DacDeployOptions并为ExcludeObjectTypes设置了变量(如下面的屏幕截图所示)。它对我来说很好,忽略了表格的变化。

在此处输入图像描述

于 2021-10-21T13:56:24.790 回答