golang bee工具 generate 命令代码生成generate的使用与示例

golang bee工具 generate 命令

generate 是个脚手架工具,可以自动生成model,controller,view等等文件,是个加速开发,省去一些基础工作的工具,接下来根据文档,测试下功能。
首先第一个 scaffold,没太注意,以为是官方写的类似man之类的示例,后来才发现,这个是个批量命令,就是可以同时创建controller, view,model,doc等等,甚至数据库及迁移管理都创建好了
写个示例,例如要创建一个产品模块,产品包含id,image,name 3个字段:

bee generate scaffold goods -fields="id:int,name:string,image:string" -conn="root:123123@tcp(127.0.0.1:3306)/beegodb"

输入后会提示选择是否创建,有文件的输入no,没有的输入yes,吐槽下,也不知道整个默认项。

当然你可以不运行上面的命令,单独生成其中一个文件,指定类型就行,比如model controller等

bee generate model goods
bee generate controller goods

细节就看官方文档:https://beego.me/docs/install/bee.md

再说下appcode,上面是根据命令生成文件和数据库,appcode就是根据数据库生成文件
例如:新建个表,

CREATE TABLE `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL COMMENT '新闻标题',
  `cid` int(11) DEFAULT NULL COMMENT '新闻分类',
  `created_time` date DEFAULT NULL COMMENT '新闻发布时间',
  `content` text COMMENT '新闻内容',
  PRIMARY KEY (`id`),
  KEY `cid` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='新闻表';

然后输入如下命令:

bee generate appcode -tables="news" -conn="root:123123@tcp(127.0.0.1:3306)/beegodb"

他就会生成一系列以上文件。顺便会修改routers/router.go 这个路由文件

标签: 无

精彩评论
  1. 大佬好,
    bee generate appcode -tables="news" -conn="root:123123@tcp(127.0.0.1:3306)/beegodb" 命令可以生成相关文件,
    bee generate controller goods 也可以在已有model文件时进行自动生成controller文件。
    但是我想只生成model文件(根据数据表),使用 bee generate model goods 命令时提示参数错误:

    FATAL ▶ 0001 Wrong number of arguments. Run: bee help generate

    官网说明如下:
    bee generate model [modelname] [-fields=""]
    generate RESTful model based on fields
    -fields: a list of table fields. Format: field:type, ...

    那这句话的意思就是说,是基于第二个参数 fields 列表来生成model,没有基于数据表来生成model的意思
    所以,我想问问你有没有根据数据表只生成model的方法?
    望赐教~

    1. 单个model文件的话目前没有, fileds参数必填,
      格式: bee generate model goods -fields="name:string,age:int"

  2. goer goer

    用 bee help generate 看一下,有个-level 参数,为1是就是只生成model

发表评论: