这篇文章主要介绍了mysql怎么对比两个数据库表结构,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
 
       在开发及调试的过程中,需要对比新旧代码的差异,我们可以使用git/svn等版本控制工具进行比对。而不同版本的数据库表结构也存在差异,我们同样需要对比差异及获取更新结构的sql语句。
 
       例如同一套代码,在开发环境正常,在测试环境出现问题,这时除了检查服务器设置,还需要对比开发环境与测试环境的数据库表结构是否存在差异。找到差异后需要更新测试环境数据库表结构直到开发与测试环境的数据库表结构一致。
 
我们可以使用mysqldiff工具来实现对比数据库表结构及获取更新结构的sql语句。
 
1.mysqldiff安装方法
 
mysqldiff工具在mysql-utilities软件包中,而运行mysql-utilities需要安装依赖mysql-connector-python  
 
 
mysqldiff --version
MySQL Utilities mysqldiff version 1.6.5
License type: GPLv2
2.mysqldiff使用方法
 
命令:
 
mysqldiff --server1=root@host1 --server2=root@host2 --difftype=sql db1.table1:dbx.table3
参数说明:
 
--server1 指定数据库1
--server2 指定数据库2
 
比对可以针对单个数据库,仅指定server1选项可以比较同一个库中的不同表结构。  
 
--difftype 差异信息的显示方式
 
unified (default)
显示统一格式输出
 
context
显示上下文格式输出
 
differ
显示不同样式的格式输出
 
sql
显示SQL转换语句输出
 
如果要获取sql转换语句,使用sql这种显示方式显示最适合。
 
--character-set 指定字符集
 
--changes-for 用于指定要转换的对象,也就是生成差异的方向,默认是server1
 
--changes-for=server1 表示server1要转为server2的结构,server2为主。
 
--changes-for=server2 表示server2要转为server1的结构,server1为主。
 
--skip-table-options 忽略AUTO_INCREMENT, ENGINE, CHARSET的差异。

dawei

【声明】:达州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。