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

Mysql 比较数据库差异并获取SQL输出,mysql,sql,database,comparison,diff,Mysql,Sql,Database,Comparison,Diff,我需要比较两个相似数据库的能力。其中一个将比另一个稍新,并对数据库的结构以及其中的内容进行更改 到目前为止,我已经尝试过使用liquibase,但它似乎不能很好地进行比较。 我还尝试了MySQL DIFF Perl模块,它工作但不考虑内容。 主要问题: 有人知道有什么解决方案可以针对结构和内容差异返回SQL并生成SQL脚本吗 更多信息: 此功能的预期用途是在对phpBB进行更新和安装MODs时,以便论坛可以与我们网站的其余部分一起包含在构建过程中。它有一个4层流程(本地、开发、暂存、生产) 安装

我需要比较两个相似数据库的能力。其中一个将比另一个稍新,并对数据库的结构以及其中的内容进行更改

到目前为止,我已经尝试过使用liquibase,但它似乎不能很好地进行比较。 我还尝试了MySQL DIFF Perl模块,它工作但不考虑内容。 主要问题:

有人知道有什么解决方案可以针对结构和内容差异返回SQL并生成SQL脚本吗

更多信息:

此功能的预期用途是在对phpBB进行更新和安装MODs时,以便论坛可以与我们网站的其余部分一起包含在构建过程中。它有一个4层流程(本地、开发、暂存、生产)

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

在安装MODs和更新时,有时数据库结构会发生变化,表中的数据也会发生变化,尤其是在添加需要额外权限的内容时

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

您可以使用数据库同步工具同步两个数据库,单向或双向。到目前为止,这是MySQL GUI最好的数据比较工具。模式同步用于两个数据库之间的模式比较


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

实际上,我已经找到了一种方法,通过使用工具>结构同步选项来实现

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

然后进行数据差异处理,您可以使用数据同步

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


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

Enterprise Elements Repository具有此功能,但该工具不是免费的。一个数据库是否包含来自另一个数据库的所有数据?如果是这样的话,有没有一个标识符可以用来比较类似的记录,比如一个不可变的主键?RedGate既有SQL比较,也有SQL数据比较,但不幸的是两者都不是免费的。好的。。。我试试看。