在团队项目的开发之中。常常会存在多个环境或者版本并行开发。例如本地的test环境,演示环境的dev环境,已经正式环境。代码的管理可以使用git、svn 或者发布系统walle等。
但是MySQL的管理就有些难以应付,对于大多数的规范化的团队,对数据库的每一次表结构的操作都需要记录。这样升级程序的时候直接执行变更的SQL语句即可。但是有时候也会出现记录不完整或者遗漏等造成本地和正式环境的不一致。
这个时候就需要去寻找两个数据库表结构的不同,人力的去寻找费时费力且很难准确。这个时候我们就需要使用到MySQL的相关工具,例如mysqldiff。
//使用方法
D:\soft\MySQL\MySQL Utilities 1.6>
mysqldiff
--server1=user:password@host:3306:socket
--server2=user:password@host:3306:socket
--force
--changes-for=server2
--difftype=sql
dbname_test:dbname_dev > D:\diff.sql
这样就会导出一个sql语句到D盘,你就可以执行相关sql实现两个数据库的一致性了。
参数可以调整,更多参数参考下面的官方文档。
也可以考虑mysqldbcompare
下面是mysql工具的下载和相关说明。详细的内容请参考官方文档。
工具官方下载地址
https://downloads.mysql.com/archives/utilities/
MySQL的官方使用说明如下
https://dev.mysql.com/doc/mysq