【问题标题】:Script schema compare changes between two SSDT projects脚本架构比较两个 SSDT 项目之间的更改
【发布时间】:2014-10-11 10:50:04
【问题描述】:

我想编写由两个 SSDT 项目之间的架构比较产生的更改的脚本,但是当源和目标都是 SSDT 项目时,“生成脚本”按钮灰显/禁用。

“更新”按钮未变灰。如果我想直接更新,我可以。但我需要这些脚本,因为我使用这两个管理不在同一网络上的两个数据库环境(但需要与 db 架构和代码提升保持同步)。

另外,为了验证和强化,如果我的目标是一个真实的数据库而不是一个项目,我可以生成脚本。只有当目标是我无法生成脚本的项目时。不幸的是,我无法直接连接到目标数据库。

我真的很想避免为了生成脚本而在本地拥有每个客户数据库环境的数据库副本(我已经为每个客户准备了 SSDT 项目)。

这是有意的限制吗?似乎很奇怪。我不能成为第一个必须管理无法从我的开发机器直接连接到的客户端架构的人。

【问题讨论】:

  • 我认为在项目之间生成差异脚本没有意义。您不会像更新数据库那样更新项目。您能否创建您的调试版本并对此进行比较?

标签: visual-studio-2013 sql-server-data-tools


【解决方案1】:

根据Microsoft's page on Schema Compare(强调添加):

"如果目标是数据库或项目,您可以直接从 Schema Compare 窗口更新目标,如果目标是 数据库或项目,您可以生成 更新脚本数据库文件。"

您描述的行为似乎是该功能的预期工作方式。

但是,如果您可以构建/编译您的项目,这将生成 .dacpac files(又名数据库文件),您可以使用架构比较来比较并生成脚本,或者看起来 command line version of SSDT (sqlpackage.exe) 似乎支持.dacpac 的源和目标。

希望对您有所帮助。

【讨论】:

  • 我们的环境策略采用了不同的方向,避免了这一限制。很高兴知道这个限制存在于未来的项目中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-24
  • 1970-01-01
相关资源
最近更新 更多