最新的CLI
工具版本功能会随着GoFrame
框架的最新版本编译,引入如果本地的CLI
工具自动化生成的代码与项目的GoFrame
框架版本出现兼容性问题时,建议升级项目框架版本,或者自定义安装旧版本的CLI
工具。旧版本CLI工具安装方式参考仓库首页介绍:https://github.com/gogf/gf-cli
使用方式
$ gf gen -h USAGE gf gen TYPE [OPTION] TYPE dao generate dao and model files. model generate model files, note that these generated model files are different from model files of command "gf gen dao". DESCRIPTION The "gen" command is designed for multiple generating purposes. It's currently supporting generating go files for ORM models. Please use "gf gen dao -h" or "gf gen model -h" for specified type help.
注意事项
gen
命令涉及到数据访问相关代码生成时,默认支持的数据库类型为:MySQL/MariaDB
、PostgreSQL
、SQLServer
。
如果需要SQLite
或Oracle
数据库类型支持,需要开发者自己修改源码文件后自行本地手动编译生成CLI
工具随后安装,因为这两个数据库的驱动需要CGO
支持,无法预编译生成给大家直接使用。
11 Comments
marc
没有检查
gf
版本直接用gf gen dao
生成,发现无法读取配置文件,执行gf update
后,即可读取配置文件,在此标记一下!苏杰
用
gf gen dao
生成代码的时候,遇到int64
类型能否指定json
转换的时候转化为字符串?每次都要修改这个,要不然js
里面读取的时候精度不够,好麻烦。郭强
如果有定制化的需求,你可以给对应的结构体实现
MarshalJSON() ([]byte, error)
接口即可,例如:arden
能否有办法指定哪些表不生成dao/model文件?因为大多数情况,其实指定哪些表不生成的需求还是蛮常见的。
郭强
想办法转成
tables
参数来控制吧。tigerOoo
model的这个设计方便统一管理对象
但外层文件统一一层目录这个设计极容易造成类型名冲突
自定义的数据结构都放在一层文件夹,也不方便进行版本控制。
但这层文件还不能删除,因为Dao层还需要引用。
建议Dao层直接引用mobel的internal内部暴漏的公共对象
model外层文件可以根据需要自行组织结构
现在的外层是食之无味,弃之有肉。
郭强
1、
model
中的internal
用于工具自动化生成的数据模型存储,由工具来维护,多次生成会覆盖的,开发者不能修改。2、
model
外层目录采用的同一个包来管理模型,而不是内部再分成多个包,其实想要解决的是之前gen model
存在的痛点:api/service/dao
中可能都会存在同样一个包名叫做user
,引用时容易混淆,降低开发维护效率。api/service/dao
的输入输出参数),多个包的话复用比较困难,造成代码冗余,不好维护。3、在不同的代码分层中,可以依靠不同的命名规范来区别不同业务的资源,不同的业务资源也可以在同一个包/目录下使用不同的文件来进行管理。
zmsky
没有办法设置某个字段不输出json吗?
郭强
当然可以的,参考下:对象封装设计
Simlske
生成的model代码有几个函数代码有错误,是因为版本关系吗 我的gf是 1.13.2版本
jroam
最好用命令 `gf update` 升一下级