主题:介绍MySQL表结构同步方法。
MySQL测试环境与生产环境的表结构同步方法。
方法一、Navicat
使用 navicat,“工具” => “结构同步”。
这个“结构同步“可以生成“差异SQL”,勾选要同步的内容,执行”运行“即可同步到生产环境。这里不再赘述。
注意: Navicat的同步方式是直接运行SQL语句。额,这么做并不好因,为DDL操作会锁表,大数据量的时候就尴尬了。推荐使用:pt-online-schema-change
方法二、mysqldiff
(1). 首先比较数据库结构差异。
比较有很多方法,下面是我知道的:
- mysqldiff。关于mysqldiff的使用请查看:《mysqldiff》
- 额,也可以:导出表结构;使用diff比较;。
- 使用Navicat的”结构同步“,直接生成差异SQL。
(2). 然后执行差异SQL语句,修改表结构。
建议使用pt-online-schema-change(关于pt-online-schema-change查看:《pt-online-schema-change》)进行结构同步。
之所以使用pt-online-schema-change的原因只是因为DDL的锁表太让人尴尬了。你要是坚持使用DDL命令的话,等你吃亏的时候你就知道了。
之所以使用pt-online-schema-change的原因只是因为DDL的锁表太让人尴尬了。你要是坚持使用DDL命令的话,等你吃亏的时候你就知道了。
参考文献
5.7 mysqldiff — Identify Differences Among Database Objects