针对1.2.0版本中存在的数个bug,以及社区用户呼声较高的几个功能特性,我们经过一周多的紧张迭代开发和测试,已经准备就绪,决定发布v.1.2.1版本。
针对表结构校验和修复特性,在v1.2.1版本中新增几个参数:
- --ScheckFixRule / --sfr,设置表结构校验时,数据修复时的对准原则,选择源端 或 目标端作为数据修复的依据。
- --ScheckOrder / --sco,设置表结构数据校验时,是否要检查数据列的顺序。
- --ScheckMod / --scm,设置表结构校验时采用严格还是宽松模式。
gt-checksum v1.2.1版本中完成表结构校验后,如果想要使之直接修复表结构不一致的地方,还需要给执行用户加上对目标亏包的 ALTER
权限,这个方面也要注意下。
gt-checksum v1.2.1版本中主要变化有以下几点:
- 新增表结构的校验,并生成修复语句,支持对象包括如下(源目标端校验表都存在):
- 支持列的数据类型的校验及修复
- 支持列的字符集及校验级的校验及修复(MySQL支持字符串校验,Oracle不校验)
- 支持列是否允许null的校验及修复
- 支持列的默认值是否一致的校验及修复
- 支持列的乱序的验证及修复
- 支持列数据存在多列、少列的验证及修复
- 支持列的comment的校验及修复
- 支持宽松模式和严谨模式校验
- 支持校验列时是按正序校验还是乱序校验
- 支持修复语句列属性的指定依据,是按源端校验还是目标端校验
- 修复索引校验并生成修复语句时出现的空指针错误
- 修复因为8.0数据库查询条件没有产生where关键字导致的sql执行失败
- 优化代码(参数input输入部分),精简代码,并结构化处理
- 修复因数据库开启lowerCaseTableNames不生效导致无法校验区分大小写的表
最新版本的gt-checksum代码已上传到gitee上,项目地址:
https://gitee.com/GreatSQL/gt-checksum/tree/1.2.1/
二进制包下载地址:
https://gitee.com/GreatSQL/gt-checksum/releases/tag/1.2.1
欢迎围观、加星,也欢迎来 找茬、提patch/issue(https://gitee.com/GreatSQL/gt-checksum/issues)。