【发布时间】:2014-06-25 13:16:25
【问题描述】:
希望这会有意义..
我们有很多数据库项目,用于维护架构和生成升级脚本。为了生成升级脚本,我们使用自动构建引擎,该引擎使用 SqlPackage.exe 将数据库项目与“模式模板”进行比较,“模式模板”是实时数据库的副本,但没有数据。
其中一个数据库引用了其他三个数据库项目。
最近,我们发现在为该数据库项目生成升级脚本时,它包括重构参考项目之一中的表的 SQL,而不是相关项目中的表。
所以升级脚本包含两段SQL:
- 在开头打印语句,说明架构对象不会被重命名。
- 一堆插入语句到 __RefactorLog。
问题是双重的:
- 这些重构不应包含在此升级脚本中;它们属于引用的数据库项目之一 - 它们与这个无关。
- 因为这个数据库不需要重构,所以它没有名为 __RefactorLog 的表,因为升级脚本不需要创建它。这会导致构建失败。
我查看了数据库项目设置,看不出引用数据库项目中的重构会包含在引用项目中的任何原因。
有什么想法吗?
更新 - 缺少的 __RefactorLog 表是一个红鲱鱼。由于某种原因,它包含在模式模板中,但不在实时数据库中,因此 SqlPackage 假定它不需要创建它。但是,我仍然很想知道为什么来自引用数据库项目的所有重构都包含在有问题的项目中。
【问题讨论】:
标签: sql database-project sql-server-data-tools sqlpackage