【发布时间】:2011-10-25 18:50:12
【问题描述】:
我们正在试用 VS2010 数据库项目进行新开发,使用以下开发周期:
- 使用 Management Studio 在本地数据库实例上开发更改(使用设计器等)
- 使用 VS2010 架构比较将这些更改同步/导入到 VSDB 项目中
- 签入 VSDB 项目并运行自动构建/测试等
当我想从源代码管理中“获取最新信息”时,我会:
- 从源代码管理更新 VSDB 项目文件
- 使用 Schema Compare 将项目中的更改推送到我的本地数据库实例
这是它开始崩溃的地方......因为架构比较试图同步这两个版本,它试图撤消我对本地数据库所做的任何更改,作为我的一部分自己的功能开发。
显然,您可以告诉架构比较以跳过对我已修改的对象的更改,但遗憾的是这并不总是正常工作:http://connect.microsoft.com/VisualStudio/feedback/details/564026/strange-schema-compare-behavior-sql-2008-database-projects。
根本上,问题的存在是因为VSDB项目中的定义并没有自动与我的本地数据库同步;因此,每次我得到更改时,我都需要使用 Schema Compare 进行“穷人合并”。
一种可能的解决方案是:
- 使用 Schema Compare 将本地数据库中的任何更改同步到 VSDB 项目首先
- 从源代码管理更新 VSDB 项目(因此使用源代码管理工具进行合并,而不是架构比较)
- 架构比较从源代码管理到我的本地数据库实例的更改
...这远非理想。
RedGate SQL Source Control 在这方面是否更好?
新的“Juneau”SQL 工具集怎么样?
【问题讨论】:
-
为什么不简单地使用数据库项目的方式。停止对数据库进行更改!
标签: sql-server visual-studio-2010 sql-server-2008 redgate datadude