比较数据库差异并获取SQL输出

时间:2011-09-08 15:58:50

标签: mysql sql database comparison diff

我需要能够比较两个相似的数据库。一个将比另一个稍微更新,并且可以更改数据库的结构以及可能的内容。

到目前为止,我已尝试使用liquibase,但似乎没有正确比较。 我也尝试过使用但不考虑内容的MySQL Diff Perl模块。

主要问题:

有没有人知道任何能够为结构和内容差异提供SQL并生成SQL脚本的解决方案?

更多信息:

用于此目的的是在更新和安装MOD到phpBB时,以便论坛可以与我们网站的其余部分一起包含在构建过​​程中。其中有4层流程(本地,开发,分期,生产)。

安装phpBB更新和MOD时,我将转储当前的生产数据库并锁定网站,以便在我进行更改时不能添加新数据。这样数据库不应该不同步。

安装MOD和更新时,有时数据库结构会发生变化,表格中的数据也会发生变化,特别是在添加需要额外权限等的事情时。

我使用的解决方案将用于比较本地数据库与生产数据库的升级更改,为我提供了一个脚本,我可以在构建过程中的每个层上运行,而不是手动安装更新/ MOD每个

2 个答案:

答案 0 :(得分:0)

您可以使用SQLyog数据库同步工具同步两个数据库,无论是单向还是双向。到目前为止,这是MySQL GUI的最佳数据比较工具。并且,Schema同步两个数据库之间的模式比较。

这两个工具都可以生成SQL脚本。

答案 1 :(得分:0)

我实际上已经找到了一种方法,可以通过Navicat for MySQL使用工具>结构同步选项。

这将为两个数据库之间的结构差异提供SQL语句。

然后执行数据差异,您可以使用Data Syncornization。

我已经设法复制了SQL脚本以获得结构上的差异。然而,数据同步似乎更像是一个内部的Navicat事情。我确信有一种方法可以提取查询。

请注意我使用的是许可证版本,因此不确定它是否可以免费使用。