42

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

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

4

12 回答 12

17

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

但只生成更改脚本。不多也不少。

于 2009-02-13T16:36:40.773 回答
12

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

于 2008-11-12T17:03:28.860 回答
6

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

它不是那么贵。可能比你的时间便宜。想想你的小时费率是多少,调查一个开源工具并让它工作可能需要多少小时(以及你已经花费了多少),然后将它们相乘。这就是“免费”工具的真正成本,这通常比商业工具要多得多。

于 2008-11-12T17:56:46.723 回答
5

它不是开源的,但是是免费的(就像在啤酒中一样):Sql Effects Accord (aka Clarity) Community Edition

于 2008-08-22T16:46:57.657 回答
4

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

于 2009-10-27T17:33:12.347 回答
3

阿罗哈

您可能想尝试SqlDbDiff。它可以生成更改脚本。免费版做得足够好。

于 2008-12-17T12:37:13.293 回答
1

有人尝试过 xSQL Bundle(xSQL 数据比较和 xSQL 对象比较)吗?我们的地方只用于数据库差异,没有同步,所以不能说同步,但差异和报告还不错。

此外,OpenDBDiff 有一个衍生产品,不确定哪个更好 - http://code.google.com/p/sql-dbdiff/

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

我查看了 xSQL 工具,它们提供命令行访问,但不幸的是,没有可编写脚本的命令将差异结果导出到(报告)文件。

于 2010-11-08T00:39:11.093 回答
1

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

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

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

于 2010-11-30T10:15:57.953 回答
0

嗯,我不知道的。您始终可以将定义检索为 SQL,然后在它们上运行差异工具,但这在后面有点麻烦。

可能最好的解决方案是使用某种“迁移”工具,这样您就可以将数据库定义与代码保存在一起,并对它们进行版本控制等。

于 2008-08-22T17:08:32.783 回答
0

更新

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

但是,到目前为止,我一直没有成功地让它工作......

于 2008-08-23T18:46:26.520 回答
0

我们有 SQL Delta 和 SQL Compare。每个人都有优点,但每个人也都有弱点,这让他们很痛苦。

SQL Delta 在它的比较中会漏掉一些触发器,它会采取行动列表中没有的行动,有时它会采取你不希望它采取的行动。这是以相当大的时间成本发现的。

SQL Compare 将捕获触发器,但它们嵌入在表列表中。在大型数据库上,这意味着遍历每个表并将它们筛选出来。该工具应该为我们隔离的东西。同样,时间成本相当高。

于 2009-07-03T15:00:50.460 回答
0

它有点晚了,但我刚刚在代码 plex 上发布了一个真正简单的项目:

http://dbcompare.codeplex.com

输入(或构建)两个连接字符串,它将比较所有表、视图和存储过程。

于 2012-02-27T20:54:22.630 回答