我正在参与一个使用SQL Server 2005作为数据存储的开源项目。我们需要一种数据库比较工具,以生成差异脚本,从而能够将数据库从一个版本升级到另一个版本。
是否有一种开源或免费的SQL Server数据库比较工具,可以生成转换脚本?
我正在参与一个使用SQL Server 2005作为数据存储的开源项目。我们需要一种数据库比较工具,以生成差异脚本,从而能够将数据库从一个版本升级到另一个版本。
是否有一种开源或免费的SQL Server数据库比较工具,可以生成转换脚本?
我认为Open DBiff做得很好。
它简单易用,可以与SQL Server 2005/2008配合使用。
但是它只生成变更脚本,没有多余的东西也没有少了什么。
我在CodePlex昨天注意到了DbDiff(http://www.codeplex.com/OpenDBiff),你可以尝试使用。支持Sql2005和2008,我没有尝试过。
我建议花一些钱购买Red Gate's SQL Compare工具,它的性能非常出色,甚至可以将数据库与Visual Studio数据库项目进行比较以生成升级脚本。它使用起来快速而简单,效果也很好。升级脚本的质量也不错。
价格并不贵,可能比你的时间还便宜。想想你的小时费率是多少,需要花多少时间去调查一个开源工具并让它正常工作(以及你已经花了多少时间),然后将它们相乘。这就是“免费”工具实际上花费你的成本,通常比商业工具高得多。
这个软件不是开源的,但是免费(就像啤酒一样):Sql Effects Accord(又名Clarity)社区版
AdeptSQL Diff和DataDiff都是非常棒的产品,比RedGate的便宜得多,并且拥有更加简化的用户界面。我还没有遇到过它无法处理的情况。
你可能想尝试使用SqlDbDiff。它可以生成更改脚本。免费版已经足够好用了。
虽然不完全符合您的要求,但我找到了与postgresql相关的内容:
http://mbk.projects.postgresql.org/
它不会生成要应用的差异,而是允许您将新版本表的完整转储与先前版本合并。
有人试过xSQL Bundle(xSQL Data Compare和xSQL Object Compare)吗?我们只用于数据库差异,没有同步,所以不能说同步如何,但差异和报告还不错。
此外,OpenDBDiff有一个分支,不确定哪个更好-http://code.google.com/p/sql-dbdiff/
有人知道这里提到的任何免费/开源DB diff工具是否提供可脚本化/命令行界面来自动化差异和同步吗?
我研究了xSQL工具,它们提供命令行访问,但不幸的是,没有可脚本化的命令将差异结果导出到(报告)文件中。
我们拥有SQL Delta和SQL Compare两种工具。每个工具都有其优点,但也存在一些缺点,使它们变得相当麻烦。
在比较中,SQL Delta会忽略一些触发器,并执行未在操作列表中找到的操作,有时还会执行您不想要的操作。这是以相当大的时间成本为代价发现的。
SQL Compare将捕获触发器,但它们嵌入在表格列表中。对于大型数据库来说,这意味着需要逐个查看每个表格并筛选出它们。这是该工具应该为我们隔离的内容。同样,这也是以相当大的时间成本为代价的。
嗯,我不知道有没有这样的工具。你可以将定义作为SQL检索,然后在它们上运行差异工具,但这有点麻烦。
可能最好的解决方案是使用某种"迁移"工具,这样你就可以将数据库定义与你的代码、版本等放在一起。