goctl model
goctl model
命令用于model层代码生成,目前暂时仅支持根据mysql
指定ddl和datasource来生成。
$ goctl model -h
NAME: goctl model - generate model code USAGE: goctl model command [command options] [arguments...] COMMANDS: mysql generate mysql model OPTIONS: --help, -h show help
从上文中得知,目前可支持mysql
自命令,即根据mysql数据库ddl和url生成model代码,我们来看看其子命令的帮助信息
$ goctl model mysql -h
NAME: goctl model mysql - generate mysql model USAGE: goctl model mysql command [command options] [arguments...] COMMANDS: ddl generate mysql model from ddl datasource generate model from datasource OPTIONS: --help, -h show help
在上文中我们定义了两个子命令ddl
和datasource
ddl
即通过mysql的ddl语句来生成代码,目前仅限制create table
$ goctl model mysql ddl -h
NAME: goctl model mysql ddl - generate mysql model from ddl USAGE: goctl model mysql ddl [command options] [arguments...] OPTIONS: --src value, -s value the path or path globbing patterns of the ddl --dir value, -d value the target dir --style value the file naming format, see [https://github.com/tal-tech/go-zero/tree/master/tools/goctl/config/readme.md] --cache, -c generate code with cache [optional] --idea for idea plugin [optional]
--src
:指定sql文件名(含路径),支持相对路径,支持通配符匹配--dir
:指定代码存放的目标文件夹--style
:指定生成文件名命名方式,lower:小写,camel:大写开头驼峰,underline:下划线--cache
:指定缓存方式,true:生成带redis缓存代码,false:生成不带redis缓存代码,默认:false--idea
:略
example
指定文件名user.sql
$ goctl model mysql ddl -src user.sql -dir=./model
通配符匹配所有sql文件
$ goctl model mysql ddl -src *.sql -dir=./model
datasource
通过指定mysql连接地址来生成model代码
$ goctl model mysql datasource -h
NAME: goctl model mysql datasource - generate model from datasource USAGE: goctl model mysql datasource [command options] [arguments...] OPTIONS: --url value the data source of database,like "root:password@tcp(127.0.0.1:3306)/database --table value, -t value the table or table globbing patterns in the database --cache, -c generate code with cache [optional] --dir value, -d value the target dir --style value the file naming format, see [https://github.com/tal-tech/go-zero/tree/master/tools/goctl/config/readme.md] --idea for idea plugin [optional]
--url
:指定数据库连接地址,如user:password@tcp(127.0.0.1:3306)/gozero
--table
:指定表名,支持通配符匹配,即匹配gozero
数据库中的表--dir
:指定代码存放的目标文件夹--style
:指定生成文件名命名方式,lower:小写,camel:大写开头驼峰,underline:下划线--cache
:指定缓存方式,true:生成带redis缓存代码,false:生成不带redis缓存代码,默认:false--idea
:略
example
指定表名user
$ goctl model mysql datasource -url="user:password@tcp(127.0.0.1:3306)/gozero" -table="user" -dir ./model
通配符匹配所有user开头的表
$ goctl model mysql datasource -url="user:password@tcp(127.0.0.1:3306)/gozero" -table="user*" -dir ./model
注意事项
- 1、为了避免解析错误,请尽量使用标准的ddl语法进行生成
- 2、不支持fulltext全文索引,解析会报错
- 3、不生成联合唯一索引的findOne
- 4、不生成分页查询代码