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 这个路由文件
大佬好,
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的方法?
望赐教~
单个model文件的话目前没有, fileds参数必填,
格式: bee generate model goods -fields="name:string,age:int"
用 bee help generate 看一下,有个-level 参数,为1是就是只生成model