3

我有一个带有 VS2015 的 SSDT 项目,并使用 SqlPackage.exe 生成部署脚本和增量更新脚本。数据库项目包含部署后脚本。这是我为数据库安装生成主脚本的方式:

sqlpackage.exe 
/a:Script 
/op:"database.sql" 
/sf:"database.dacpac"
/tsn:"localhost" 
/tdn:"MyDbName" 
/p:CommentOutSetVarDeclarations="True"
/p:ScriptDatabaseCompatibility="True" 
/p:IgnoreFileAndLogFilePath="True" 
/p:IgnoreFilegroupPlacement="True" 
/p:ScriptFileSize="True" 
/p:PopulateFilesOnFilegroups="False" 

这将输出我使用sqlcmd.exe运行的database.sql文件。该脚本文件还包含我所有的部署后脚本(插入、更新等)

一旦我有了新版本的数据库,我就从之前拍摄的 dacpac 快照创建增量更新脚本:

sqlpackage.exe 
/a:Script 
/op:"%migratePath%\%database%.!build!-%version%.sql" 
/sf:"%snapshotPath%\%database%.%version%.dacpac" 
/tf:"%snapshotPath%\%database%.!build!.dacpac" 
/tdn:"MyDbName" 
/p:CommentOutSetVarDeclarations="True" 
/p:AllowIncompatiblePlatform="True" 
/p:IgnorePermissions="True" 
/p:IgnoreRoleMembership="True" 
/p:ExcludeObjectTypes=Users;Credentials;Logins;Permissions;RoleMembership;ServerRoles;ServerRoleMembership;

这很好用,但是,增量更新脚本不包含元数据/参考数据(例如国家、州、货币等的列表)。

有没有办法告诉 SqlPackage 生成包含表引用数据的增量脚本?

4

0 回答 0