当前位置: 首页 > news >正文

gorm的自动化工具gen

gorm的自动化工具gen

官方

https://gorm.io/zh_CN/gen/

假设数据库结构如

Image1

这里使用gen-tool

安装

go install gorm.io/gen/tools/gentool@latest

用法

gentool -hUsage of gentool:-c string配置文件名、默认值 “”、命令行选项的优先级高于配置文件。 -db string指定Driver,默认值“mysql”,referer:https://gorm.io/docs/connecting_to_the_database.html-dsn string用于连接数据库的DSN reference: https://gorm.io/docs/connecting_to_the_database.html-fieldNullable当字段允许空时用指针生成-fieldWithIndexTag生成带有gorm index 标签的字段-fieldWithTypeTag生成带有gorm type标签的字段-modelPkgName string生成模型代码包名称。-outFile stringGenrated 查询代码文件名称,默认值:gen.go-outPath string指定输出目录(默认 “./dao/query”)-tables string指定要生成的表名称,默认所有表。-onlyModel指生成Models不生成对应的query-withUnitTest生成单元测试,默认值 false, 选项: false / true-fieldSignabledetect integer field's unsigned type, adjust generated data type

Example

gentool -dsn "user:pwd@tcp(localhost:3306)/database?charset=utf8mb4&parseTime=True&loc=Local" -tables "orders,doctor"gentool -c "./gen.tool" # 配置文件像下面
version: "0.1"
database:# consult[https://gorm.io/docs/connecting_to_the_database.html]"dsn : "username:password@tcp(address:port)/db?charset=utf8mb4&parseTime=true&loc=Local"# 选择mysql或者其他引擎,比方sqlserverdb  : "mysql"# 指定要生成的table,流控则全部tables  : "user"# 指定输出目录outPath :  "./dao/query"# 输出的代码,默认gen.gooutFile :  ""# 是否生成单元测试withUnitTest  : false# generated model code's package name# 生成的model的代码的包名modelPkgName  : ""# 使用指针当字段是空的fieldNullable : false# 生成的字段带有gorm tagfieldWithIndexTag : false# 生成的字段时候带有gorm type 标签fieldWithTypeTag  : false

ubuntu将gobin加入到PATH的做法

个人来说,gentool没有被加入到PATH中,这边手动把GOPATH加入到PATH中,我用的是

zsh,所以把环境变量加入到~/.zshrc中,参考下面的命令

Image2

echo 'export PATH=$PATH:~/go/bin' | tee -a ~/.zshrc

现在gentool可以在任意地方被调用了

Image3

实例

在项目根目录新疆gentool文件里面写入内容

version: "0.1"
database:# consult[https://gorm.io/docs/connecting_to_the_database.html]"dsn : "root:root@tcp(127.0.0.1:3306)/school?charset=utf8mb4&parseTime=true&loc=Local"# 选择mysql或者其他引擎,比方sqlserverdb  : "mysql"# 指定要生成的table,流控则全部# 指定输出目录outPath :  "./dao/query"# 输出的代码,默认gen.gooutFile :  ""# 是否生成单元测试withUnitTest  : false# generated model code's package name# 生成的model的代码的包名modelPkgName  : "models"# 使用指针当字段是空的fieldNullable : false# 生成的字段带有gorm tagfieldWithIndexTag : false# 生成的字段时候带有gorm type 标签fieldWithTypeTag  : false

然后使用gentool指定-c

结果如在dao包下生成了对应的models和query

Image4

http://www.lryc.cn/news/218927.html

相关文章:

  • dubbo没有找到生产者
  • 论文阅读——What Can Human Sketches Do for Object Detection?(cvpr2023)
  • 统计学习方法 牛顿法和拟牛顿法
  • React基础知识02
  • Oracle(10)Managing Undo Data
  • Xcode 14.3 新版问题总结
  • 14 _ 排序优化:如何实现一个通用的、高性能的排序函数?
  • 如何记录每天的工作日程?电脑手机通用的日程管理软件
  • 基础Redis-结构与命令
  • [强网杯 2019]随便注1
  • Skywalking介绍
  • K8S知识点(四)
  • Android WMS——WMS窗口更新移除(十四)
  • Java程序设计2023-第三次上机练习
  • opencv复习(简短的一次印象记录)
  • pytorch-损失函数-分类和回归区别
  • 数字IC后端实现 |TSMC 12nm 与TSMC 28nm Metal Stack的区别
  • Spring Security OAuth 2.0 资源服务器— JWT
  • C++初阶(八)类和对象
  • Excel文档名称批量翻译的高效方法
  • python里面的浅拷贝和深拷贝
  • HJ76 尼科彻斯定理
  • AndroidAuto PCTS A118解决杂音问题
  • uniapp小程序砸金蛋抽奖
  • 数据结构(超详细讲解!!)第二十节 数组
  • 【Android】Android Framework系列---CarPower深度睡眠STR
  • 【漏洞复现】Fastjson_1.2.47_rce
  • 玩转AIGC:如何选择最佳的Prompt提示词?
  • ELK搭建以及使用教程(多pipiline)
  • 小程序如何设置用户同意服务协议并上传头像和昵称