美文网首页
gen-model 把 mysql 数据库表转为结构体 gol

gen-model 把 mysql 数据库表转为结构体 gol

作者: 弹猪 | 来源:发表于2020-07-03 14:36 被阅读0次

    以下流程假定你用的Windows系统

    安装

    首先是安装代理,解决依赖包的下载问题

    # goproxy.io 还是有网络问题,所以用 goproxy.cn
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct 
    

    如果之前设置GOPROXY,会报错环境变量不能覆盖。

    warning: go env -w GOPATH=... does not override conflicting OS environment variable
    

    解决办法:右键 我的电脑 -> 高级系统设置 -> 环境变量 找到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
    ;
    
    1. 初始化生成配置文件.gen-model.yaml
    cd ${your_project_dir}
    gen-model init
    
    1. 修改.gen-model.yaml配置里的mysql.* gen.searchTableName,运行create 命令,生成表对应的struct结构体
    gen-model create #默认会读取前面配置文件里的值
    
    1. 创建本地字段映射文件
    gen-model create --persist=local-mapper
    
    # 会报错,因为第2步里已经生成了结构体,如果确定覆盖可以追加参数 `-f=true`
    
    gen-model create --persist=local-mapper -f=true
    
    1.gif
    1. 拷贝${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
    1. 同样的,你也能把mapper 存到DB里, 只要把上面local-mapper替换为 db-mapper。这么做的好处是你可以跨项目管理结构体了。
      注意,运行的mysql用户必须有 建库/建表/插入数据 的权限

    2. 其他命令,通过-h查阅

    gen-model -h # 整个应用的帮助
    gen-model create -h # 子命令行 `create` 的帮助
    

    相关文章

      网友评论

          本文标题:gen-model 把 mysql 数据库表转为结构体 gol

          本文链接:https://www.haomeiwen.com/subject/pqdsqktx.html