Gt-checksum 1.2.1發布,新增表結構校驗及修復等超實用特性
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)。