以下流程假定你用的Windows系統(tǒng)
安裝
首先是安裝代理障癌,解決依賴包的下載問題
# goproxy.io 還是有網絡問題,所以用 goproxy.cn
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
如果之前設置GOPROXY
旨袒,會報錯環(huán)境變量不能覆蓋撒璧。
warning: go env -w GOPATH=... does not override conflicting OS environment variable
解決辦法:右鍵 我的電腦 -> 高級系統(tǒng)設置 -> 環(huán)境變量 找到GOPROXY
雙擊編輯之
準備就緒喳张,下載并安裝gen-model
go get -u github.com/DaoYoung/gen-model
# GOBIN 目錄下會有一個gen-model.exe哥遮,沒有的話進到gen-model, 手動 go install
用法
說明:下面提到的例子用了student表
CREATE TABLE `student` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`real_name` VARCHAR(50) NOT NULL COLLATE 'utf8mb4_unicode_ci',
`age` MEDIUMINT(3) NOT NULL,
`sex` TINYINT(1) NOT NULL,
`birthday` DATE NOT NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB
;
- 初始化生成配置文件
.gen-model.yaml
cd ${your_project_dir}
gen-model init
- 修改
.gen-model.yaml
配置里的mysql.*
gen.searchTableName
岂丘,運行create
命令,生成表對應的struct結構體
gen-model create #默認會讀取前面配置文件里的值
- 創(chuàng)建本地字段映射文件
gen-model create --persist=local-mapper
# 會報錯眠饮,因為第2步里已經生成了結構體奥帘,如果確定覆蓋可以追加參數(shù) `-f=true`
gen-model create --persist=local-mapper -f=true
1.gif
- 拷貝
${struct}FieldMapper.yaml
, 命名為${struct}VOFieldMapper.yaml
仪召,里面刪除2個字段寨蹋,生成新的結構體
gen-model create --source=local-mapper --forceCover=true --modelSuffix=VO
# it will generate `${struct}VO.go`
2.gif
同樣的,你也能把mapper 存到DB里扔茅, 只要把上面
local-mapper
替換為db-mapper
钥庇。這么做的好處是你可以跨項目管理結構體了。
注意咖摹,運行的mysql用戶必須有 建庫/建表/插入數(shù)據(jù) 的權限其他命令,通過
-h
查閱
gen-model -h # 整個應用的幫助
gen-model create -h # 子命令行 `create` 的幫助