重要的话先说,今晚(3月20日)19:30 gt-checksum新版本发布会,扫码(或点文末阅读原文)预约
gt-checksum 1.2.0版本发布后,受到了广大社区用户的热烈响应。短短几天,便有几十个star,以及社区用户提交了十几条issue反馈问题,更有热心用户帮忙优化了Dockerfile,据说还有某大厂计划基于gt-checksum做二开。这些都让我们深受鼓舞,这说明大家对国人的开源项目并不抵触,这个开源项目也确实是业界所需。
针对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)。
EnjoyGreatSQL:)