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