题
我的公司拥有许多相对较小的 Access 数据库 (2-5MB),用于控制我们的用户辅助设计工具。当然,随着数据错误的发现和修复以及模式的改变以支持工具中的新功能,这些数据库会随着时间的推移而发展。谁能推荐一个数据库差异工具来比较一个版本的数据库与下一个版本的数据和模式?任何建议将不胜感激:免费、开源或商业。
解决方案
我使用 Red Gate Sql Compare 来比较模式。它还有一个有趣的功能,允许您保存架构的快照,然后可以在以后的差异中使用。例如,将今天的模式与一个月前的模式进行比较。
其他提示
我使用 ApexSQL Diff。它是一个出色的工具,可以执行您所描述的操作...比较架构、比较数据、生成更改脚本。它不是免费的,但效果很好。
笔记:ApexSQL Diff 仅适用于 SQL Server。
我们从未真正购买过它,因为我们最终使用的是 SQL Server 2005,但 DBDiff 似乎可以解决问题: http://www.dkgas.com/downdbdiff.cgi
它适用于任何 ODBC 兼容的数据库。
我用过 全面访问侦探 过去它确实成功了。不过那是不久前的事了,所以你可能想先调查一下......
如果您正在寻找 Red Gate 最优秀的 SQL Compare 的免费替代品,您可能需要检查由 SQLDB工具. 。我一直使用它,直到我屈服并购买了 SQL Compare。
这不是一个完美的解决方案,但我经常将两个数据库导出为 txt/SQL 文件,然后使用 diff 程序,例如附带的程序 乌龟SVN. 。然后您可以看到所有差异。但它不会自动创建 SQL 来同步数据库。
特征
高性能,适用于大型数据集(+10MM 行)。
即使在非常大的数据集上,内存开销也非常低。
高质量——适用于应用程序/框架的全面嵌入式回归测试套件。
Java 无处不在(tm) — Linux、Solaris、OS X、Windows 等。
跨数据库——Oracle、MySQL、DB2 和任何 JDBC 数据源。
命令行驱动;无需图形用户界面;可以在无头环境中运行。
XML 配置文件驱动。
免费开源软件。
Apache 许可证,版本 2.0。
干净的面向对象设计使扩展变得容易。
可轻松嵌入为 Java 库 (jar)。