SQL Dacpac 部署使用 SqlPackage 和 DropObjectsNotInSource 和 DoNotDropUsers

Chr*_*ris 5 sql-server deployment dacpac

我在我的 CI 构建中运行 SqlPackage 来部署 dacpacs 并使用 /Profile 开关传递一个 publish.xml 文件。我在配置文件中设置了以下三个选项:

<DropObjectsNotInSource>True</DropObjectsNotInSource>
<DoNotDropPermissions>True</DoNotDropPermissions>
<DoNotDropUsers>True</DoNotDropUsers>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行 dacpac deploy 时,它仍会尝试删除我的用户。有任何想法吗?

Ste*_*een 3

(不幸的是)SqlPackage.exe 处理发布配置文件时存在一个错误,因此不支持 DoNotDrop 和 Exclude 选项。这将在即将发布的 SqlPackage.exe 版本中得到修复。与此同时,您是否尝试过使用此 SqlPackage.exe 命令行参数?

/p:DoNotDropObjectTypes=Permissions;Users
Run Code Online (Sandbox Code Playgroud)

  • SSDT 团队博客上的 SqlPackage.exe 中有一个关于此问题的声明:https://blogs.msdn.microsoft.com/ssdt/2016/04/15/sql-server-data-tools-preview-update- 2016 年 4 月/ (3认同)