比较两个mysql数据库表结构的差异
需求来源:一个线上系统,一个开发系统,现在要把开发系统更新到线上,但是开发系统的数据库结构与线上的略有差异,所以需要找出两个数据库的表结构差异。 数据库表结构的差异
注:操作均在Linux系统下完成
数据库表结构的差异
1.导出两个数据库的表结构
数据库表结构的差异
1 | cd mysql /bin |
2 | . /mysqldump -uroot -p -d DB1> /home/leo/db1 .sql |
3 | . /mysqldump -uroot -p -d DB2> /home/leo/db2 .sql |
mysqldump的-d参数意思是只要导出结构,不需要导出数据。
http://leo108.com/pid-1858.asp
2.比较
未经允许严禁转载
1 | cd /home/leo |
2 | diff db1.sql db2.sql> diff |
利用diff命令把两个sql文件的差异处找出来,但是还是会有一些信息是无用的,例如AUTO_INCREMENT的值,所以要把这些信息剔除 diff
1 | cd /home/leo |
2 | sed -i 's/AUTO_INCREMENT=[0-9]\{1,\}//' db1.sql |
3 | sed -i 's/AUTO_INCREMENT=[0-9]\{1,\}//' db2.sql |
4 | diff db1.sql db2.sql> diff |
user:Felix
mail:wudonghang@wudonghang.com
If you have questions or suggestions, please contact the author.