我目前正在开发一个使用MySQL数据库的应用程序。

数据库结构在开发过程中仍在变化和变化(我更改本地副本,只保留测试服务器上的副本)。

是否有一种方法可以比较数据库的两个实例,以查看是否有任何更改?

虽然目前简单地丢弃之前的测试服务器数据库是可以的,但是随着测试开始输入测试数据,这可能会变得有点棘手。 同样的情况会在以后的制作中再次发生……

是否有一种简单的方法来增量地对生产数据库进行更改,最好是自动创建一个脚本来修改它?


答案中提到的工具:

Red-Gate的MySQL模式和数据比较(商用) Maatkit(现为Percona) liquibase 蟾蜍 Nob Hill数据库比较(商业) MySQL Diff SQL EDT(商用)


当前回答

我认为MySQL的Navicat对这种情况会有帮助。它支持MySQL的数据和结构同步。

其他回答

看看http://www.liquibase.org/

有一个使用perl编写的有用工具叫做Maatkit。它有几个数据库比较和同步工具。

对于问题的第一部分,我只是把两者都做了一下,并将它们区别开来。不确定mysql,但postgres pg_dump有一个命令,只转储模式而不转储表内容,所以你可以看到你是否改变了模式。

从功能比较列表中…MySQL Workbench在社区版中提供了模式差异和模式同步。

用于MySQL的Toad具有数据和模式比较功能,我相信它甚至可以创建同步脚本。最重要的是,它是免费的。