MySQL 对比数据库的表结构
2024-09-05 10:21:13
有时候,需要对比一下测试环境和生产环境中,数据库的表结构是否有所差异。有两个常用的工具。
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
mysqldiff 可以对比两个数据库,或只对比表:
db1:db2
:如果只是指定数据库,那么就将两个数据库中互相缺少的对象显示出来,而对象里面的差异不进行对比;包括表、存储过程、函数、触发器等。db1.object1:db2.object1
:如果指定了具体表对象,那么就会详细对比两个表的差异,包括表名、字段名、备注、索引、大小写等都有的表相关的对象。
参数:
--server1
:配置server1的连接--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的修改。
最新文章
- Redis 简单搭建
- AutoHotkey 使用笔记
- XML序列化的时候如何支持Namespace
- ligerUI布局时,Center中的Tab高度太小问题解决
- Mysql外键约束设置使用方法
- sencha gridpanel 单元格编辑
- opencv显示鼠标所在位置的rgb值
- 在try...catch语句中执行Response.End()后如何停止执行catch语句中的内容
- Sublime Text 2&;3中输入法不跟随光标移动的问题的解决方法
- php 加密解密方法2
- Asp.net 事务处理
- 设置韩澳大利亚sinox弄winxp清除字体和界面美观
- C++11 中值得关注的几大变化(网摘)
- Struts2如何搭建?
- 解决macOS git clone Azure DevOps提示身份认证失败问题
- IdentityServer4授权类型(GrantType)对应的返回类型(ResponseType)
- c# dev treelist 总结
- WPF 标签预览可以显示图片运行后不显示
- 【JavaScript 从零开始】变量作用域
- 【BZOJ】1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名
热门文章
- ngnix高并发的原理实现(转)
- 华为交换机SOCK CPU占用率高处理方法
- Java static关键字的重新思考
- Codeforces 1042C (贪心+模拟)
- 帝国CMS 列表内容模板[!--empirenews.listtemp--]改写为灵动标签[e:loop={}]
- Route的exact属性
- Taro -- 获取用户手机号
- SSM中前台传数组。后台接受的问题
- tree 数状型结构显示目录下的内容
- Ubuntu16.04 启用root权限