Dacpac是版本化架构的好方法,我们必须使用前/后部署来修改参考数据。
有什么更好的解决方案吗?
答案 0 :(得分:4)
我看到的最好的方法是使用合并语句,每个文件一个表,并使用:r imports将它们导入到部署后的脚本中。
您可以获得版本历史记录和易于比较的数据,并且使用sp_generate_merge可以非常简单。
版
答案 1 :(得分:4)
如果您正在寻找SSDT中的解决方案来处理不涉及使用前/后部署脚本的参考,遗憾的是目前还没有。
但它目前是one of the most requested features in SSDT所以也许有可能在将来某个时候实施。
我是Ed提到的sp_generate_merge
OSS实用程序的维护者,在Redgate,我们建议使用这种方法以离线方式处理我们客户的参考数据,在以下情况下:
离线方法可能存在问题:
MERGE
语句的非确定性:在针对目标环境实际运行部署之前,可能很难知道将应用哪些更改(如果有)。最糟糕的情况是,您可以点击其中一个documented issues in MERGE
NOT NULL
列。另一个解决方案涉及遵循在线方法,我们的SSDT替代ReadyRoll数据库项目支持该方法。它允许直接在数据库中编辑数据,然后使用同步脚本(即包含INSERT
,UPDATE
,DELETE
语句而不是MERGE
将数据导入到项目中)由数据比较工具生成,以及任何架构更改。