gt-checksum 1.2.1 发布,新增表结构校验及修复等超实用特性
重要的话先说,今晚(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)。
评论