前言
最近在用golang寫api,用到gorm包進行資料庫操作,gorm是golang中非常流行的一個orm包,使用gorm進行資料庫操作前,一般需要先用一個golang結構體對資料表欄位進行對映,於是我們經常需要根據資料表中的欄位名和型別來手動在go程式碼中寫struct,有時候資料表欄位很多的情況下,這種方式很耗費精力。於是便想到了寫一個chrome外掛,根據資料表的DDL語句來自動生成golang結構體,可以配置go結構體欄位型別與mysql資料表欄位型別的一個對映關係。
SQL2Struct
SQL2Struct是一款對golang開發者友好的chrome外掛,根據在mysql中建立資料表的sql語句,自動生成golang中的struct,在golang開發者使用諸如gorm之類的框架時,可以很好的把mysql中的資料表與orm的結構體關聯起來。
github地址:github.com/mikemintang…
使用說明
下載chrome擴充套件檔案:點選下載
安裝擴充套件
- 在mysql中獲取生成資料表的sql語句
show create table users\G;
進入外掛主頁面,把上一步得到的sql語句貼上至左側的輸入框
複製右側生成的struct,貼上至golang程式碼中即可
配置說明
目前只有三個配置項
- gorm:開啟此配置項,則生成struct的時候,每個欄位都會包含類似
gorm:column:"id"
這樣的資訊。 - json:開啟此配置項,則生成struct的時候,每個欄位都會包含類似
json:"id"
這樣的資訊。 - typeMap:此配置項定義mysql資料表欄位型別與go欄位型別的對映關係,在資料解析的時候會安裝配置的對映關係進行結構體生成。
Todolist
- [ ] 支援更多的mysql型別與go型別的對映
- [ ] 支援自定義要進行轉換的欄位配置
- [ ] 正規表示式優化
- [ ] 資料表名稱複數形式與struct名稱單數形式轉換
- [ ] 增加主鍵、索引轉換支援
Contribution
歡迎fork程式碼、提issue或者是pull request