两个mysql数据库表结构_MYSQL对⽐两个数据库表结构
有时候,需要对⽐⼀下测试环境和⽣产环境中,数据库的表结构是否有所差异。有两个常⽤的⼯具。
AmpNmp.DatabaseCompare
GUI 界⾯,⽀持多种数据库(MySQL、SQL Server、SQLite)简单⾼效,推荐。
官⽅下载地址及⽂档
百度⽹盘下载地址
mysqldiff
官⽅⽂档
官⽅下载地址
下载安装
mysqldiff 是命令⾏⼯具,其优点是可以直接根据差异⽣成 SQL 语句。
⼀般直接在本地开发环境安装,如果是 Windows 环境,需要提前安装 Visual C++ Redistributable Packages for Visual Studio 2013。
语法
mysqldiff --server1=user:pass@host:port:socket --server2=user:pass@host:port:socket db1.object1:db2.object1 db3:db4
1
mysqldiff 可以对⽐两个数据库,或只对⽐表:
db1:db2:如果只是指定数据库,那么就将两个数据库中互相缺少的对象显⽰出来,⽽对象⾥⾯的差异不进⾏对⽐;包括表、存储过程、函数、触发器等。
db1.object1:db2.object1:如果指定了具体表对象,那么就会详细对⽐两个表的差异,包括表名、字段名、备注、索引、⼤⼩写等都有的表相关的对象。
参数:
--server1:配置server1的连接
mysql下载哪个盘
--character-set:配置连接时⽤的字符集,如果不显⽰配置默认使⽤“character_set_client”
--width:配置显⽰的宽度
--skip-table-options:这个选项的意思是保持表的选项不变,即对⽐的差异⾥⾯不包括表名、AUTO_INCREMENT,ENGINE, CHARSET 等差异。
-d DIFFTYPE,--difftype:差异的信息显⽰的⽅式,有[unified|context|differ|sql](default: unified),如果使⽤sql那么就直接⽣成差异的SQL这样⾮常⽅便。
--changes-for=:例如–changes-for=server2,那么对⽐以sever1为主,⽣成的差异的修改也是针对server2的对象的修改。
--show-reverse:这个字⾯意思是显⽰相反的意思,其实是⽣成的差异修改⾥⾯同时会包含server2和server1的修改。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。