PHP Laravel NGINX Symfony Dubbo Bootstrap Python Symfony Apache Protobuf linux Spring Django ASP Thrift Slim Typescript Docker Homestead MySQL Redis Git SVN ssh Root vim java scala sass less PHP Avro android html Golang Vue Angular React NGINX kotlin Rust Javascript

goframe如何使用gf命令快速创建model

原创

原创不易 ~ 喜欢请点我关注

注意,gf更新很快,最近在model中废弃了之前的生成方法,转而使用dao来提供服务,请参考
https://github.com/gogf/gf-cli/commit/f0449083cd7866c01dec5d141d71d6cc73656e91
这个commit。现在我们可以直接使用
gf gen dao -l "mysql:root:pass@tcp(127.0.0.1:3306)/dbname"这个命令快速生成models

goframe是一款非常强大的框架,需要了解更多请移步至官方文档:

https://goframe.org/index

今天我们要一起来看一下如何使用goframe中的gf工具来快速创建model

还没下载这个工具的请使用以下链接查看下载:

https://goframe.org/toolchain/cli

linux环境下推荐将gf放至go的安装路径下

$ whereis gf
/usr/local/go/bin/gf

接下来我们在数据库中随便创建一张表

CREATE TABLE flights (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    code VARCHAR(30) NOT NULL COMMENT '航班号',
    origin VARCHAR(30) NOT NULL COMMENT '装货港',
    dest VARCHAR(30) NOT NULL COMMENT '卸货港'
);

完成后,我们就可以使用gf来帮我们创建model了。

要完成这一步,gf需要知道我们的数据库配置信息,我们可以使用-l选项来传入:

$ gf gen model app/model/ -l "mysql:root:password@tcp(127.0.0.1:3306)/db_name" -t flights

可以看到,以上命令中app/model/为我们想要gf帮我们创建model的路径,-t选项表示table,即我们可以手动指明为哪些表生成models。如果不传这个选项,那么默认将为所有的表进行创建。
那么这里就需要注意了,如果我们之前已经创建过了modelgf会提示你是否要覆盖,那么一定要小心,因为有时候我们可能为某些models增加了一些便捷方法,那么如果覆盖了这些方法就不见了,我们又得重新写,所以推荐使用的时候带上-t参数,防止意外操作。

如果想了解更多的用法,我们也可以输入

$ gf gen

USAGE
    gf gen model [PATH] [OPTION]

ARGUMENT
    PATH  the destination for storing generated files, not necessary, default is "./app/model"

OPTION
    -l, --link    database configuration, please refer to: https://goframe.org/database/gdb/config
    -t, --table   generate models only for given tables, multiple table names separated with ','
    -g, --group   used with "-c" option, specifying the configuration group name for database,
                  it's not necessary and the default value is "default"
    -c, --config  used to specify the configuration file for database, it's commonly not necessary.
                  If "-l" is not passed, it will search "./config.toml" and "./config/config.toml"
                  in current working directory in default.
    -p, --prefix  remove specified prefix of the table, multiple prefix separated with ','


EXAMPLES
    gf gen model
    gf gen model -l "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
    gf gen model ./model -l "mssql:sqlserver://sa:12345678@127.0.0.1:1433?database=test"
    gf gen model ./model -c config.yaml -g user-center -t user,user_detail,user_login
    gf gen model -p user_,p_

DESCRIPTION
    The "gen" command is designed for multiple generating purposes.
    It's currently supporting generating go files for ORM models.

其他的用法大家自己摸索吧。


正在加载验证码......
请先完成验证