是否有任何工具/技术可用于将SQL代码与Subversion集成以进行版本控制?
答案 0 :(得分:2)
是的,请查看Red Gate的SQL Source Control以获取一个选项
答案 1 :(得分:0)
在IDE中,您可以使用Red Gate的SQL Source Control
否则,您可以将对象编入source-controlled folder脚本。我们使用Red Gate(因为在SQL Source Control发布之前)
答案 2 :(得分:0)
我喜欢为此目的将代码与数据分开。因此,视图,StoredProcs,函数的版本控制与正常一样,但对表,索引,数据的更改将存储为增量更改。
如果您有预算,VS2010 Team System是一个不错的选择,RedGate Sql源代码控制也是如此。
那就是说,推出自己的东西并不难。你需要两个组件:
答案 3 :(得分:0)
我有一个开源(LGPL许可)工具集项目,该项目试图解决与正确的数据库架构版本控制相关的问题(以及更多),bsn ModuleStore。
基本上,它的独立部分将数据库模式的SQL Server数据库对象编写为应用了标准格式的文件,这样只有在对象确实发生更改时文件内容才会发生变化(与完成的脚本完全相反)通过VS,脚本编写一些脚本日期等,将所有对象标记为已更改,即使它们实际上是相同的。)
但是,如果使用.NET,工具集将超越它:它允许您将SQL脚本嵌入到库或应用程序中(作为嵌入式资源),然后将嵌入式脚本与数据库中的当前状态进行比较。非表相关的更改(根据Martin Fowler's definition不是“破坏性更改”)可以自动应用或根据请求应用(例如创建和删除视图,函数,存储过程,类型,索引等对象),和更改脚本(需要手动编写)也可以在同一个过程中应用;还会创建新表,可选择与其设置数据一起创建。更新后,再次将DB模式与脚本进行比较,以确保在提交更改之前成功进行数据库升级。
根据您希望如何访问数据库,工具集提供了更多功能 - 它实现了一些ORM功能,并提供了一种非常好用且基于接口的方法来调用存储过程,包括使用本机.NET透明地支持XML XML类以及TVP(表值参数)为IEnumerable<PocoClass>
。