有开放源代码的SQL Server DB比较工具吗?

时间:2020-03-05 18:42:06  来源:igfitidea点击:

我正在使用SQL Server 2005作为数据存储的开源项目。我们需要一个数据库比较工具来生成差异脚本,以便能够将数据库从一个版本升级到另一个版本。

是否有开源或者免费的SQL Server DB差异工具生成转换脚本?

解决方案

回答

它不是开源的,但是是免费的(例如在啤酒中):Sql Effects Accord(又名Clarity)社区版

回答

嗯,我不知道。我们始终可以将定义作为SQL检索,然后对它们运行diff工具,但是后面有些麻烦。

可能最好的解决方案是使用某种"迁移"工具,因此我们可以将数据库定义与代码保持在一起,并对它们进行版本控制等。

回答

更新

在Sourceforge上,我发现了Whiz SQL结构与以下描述进行比较:Whiz是数据库diff实用程序,它将有助于发现两个MS-SQL Server数据库之间的差异。它还能够生成SQL脚本,以将更改从一个数据库更新到另一个数据库。

但是,到目前为止,我一直未能成功进行工作...

回答

在CodePlex上,我昨天注意到DbDiff(http://www.codeplex.com/OpenDBiff)可以尝试。支持Sql2005和2008,我没有尝试过。

回答

我建议我们花一些钱,并获得Red Gate的SQL比较工具,该工具做得很好,甚至可以将数据库与Visual Studio数据库项目进行比较以生成升级脚本。它快速且易于使用,并且效果很好。升级脚本的质量也不错。

没那么贵。可能比时间便宜。只需考虑一下每小时费率是多少,以及研究一个开源工具并使它正常工作可能需要花费多少小时(以及我们已经花了多少时间),然后将它们相乘。这就是"免费"工具的实际成本,这通常比商业工具要贵得多。

回答

阿罗哈

我们可能想尝试SqlDbDiff。它可以生成更改脚本。免费版做得很好。

回答

我认为Open DBiff做得很好。
很简单,我可以使用SQL Server 2005/2008.

但是只生成更改脚本。一无所有,一无所有。

回答

我们同时具有SQL Delta和SQL Compare。每个人都有优点,但每个人都有缺点,这会使他们感到痛苦。

SQL Delta在比较中将丢失一些触发器,并且将执行未在操作列表中找到的操作,有时还会执行我们不希望执行的操作。很快就发现了这一点。

SQL Compare将捕获触发器,但是它们嵌入在表列表中。在大型数据库上,这意味着要遍历每个表并将其筛选出来。该工具应该为我们隔离了一些东西。再次,相当耗时。

回答

AdeptSQL Diff和DataDiff是很棒的产品,比RedGate的便宜得多,并且UI更加简化,而且我还没有遇到它无法处理的情况。

回答

有人尝试使用xSQL Bundle(xSQL数据比较和xSQL对象比较)吗?我们的位置仅用于DB差异,没有同步,因此不能说同步,但是差异和报告还不错。

另外,OpenDBDiff具有衍生功能,不确定哪个更好http://code.google.com/p/sql-dbdiff/

有人知道这里提到的任何免费/开源DB差异工具是否提供可脚本化/命令行界面来自动化差异和同步吗?

我研究了xSQL工具,它们提供了命令行访问,但是不幸的是,没有脚本化命令可将diff结果导出到(报告)文件。

回答

虽然这并不是我们想要的,但我为postgres找到了这个:

http://mbk.projects.postgresql.org/

它不会产生差异来应用,而是允许我们将表的新版本与先前版本的完整转储合并。