启用shell自动补全可大幅提升goctl使用效率:执行source

在Go-Zero项目开发中频繁敲打goctl命令却总记不住参数拼写、子命令层级或路径格式,导致反复查文档、试错重跑、生成目录错乱甚至覆盖已有文件。
启用shell命令自动补全
执行以下命令注册bash/zsh补全脚本:
source
zsh用户需额外执行:
echo "source > ~/.zshrc && source ~/.zshrc
补全生效后,输入 goctl api
goctl api 常用参数速查
方法一:生成标准API服务框架
goctl api new
该命令在当前目录创建完整服务骨架,含 etc/、internal/、.api 文件和启动入口,【serviceName 必须为合法Go包名,不能含短横线或大写字母】。
方法二:从 .api 文件生成 Go 代码
goctl api go -api order.api -dir ./order-api --style=goZero
--style=goZero 是生产环境推荐风格,生成的目录结构与变量命名严格遵循 go-zero 官方规范;省略此参数将使用默认 camelCase 风格,可能导致 handler 与 logic 层字段映射失败。
方法三:批量生成多个 API
goctl api go -api "*.api" -dir ./
注意通配符需加英文引号包裹,否则 shell 会提前展开为文件列表并报错“未知参数”。
goctl model 生成参数要点
① 从 SQL 文件生成 Model(推荐用于本地开发)
goctl model mysql ddl -src="./sql/user.sql" -dir="./model"
② 批量读取 SQL 文件(支持通配符)
goctl model mysql ddl -src="./sql/*.sql" -dir="./model"
③ 从数据库直连生成(需配置连接串)
goctl model mysql datasource -url="root:123456@tcp(127.0.0.1:3306)/testdb?charset=utf8mb4" -table "user,order" -dir="./model"
使用 datasource 模式时,-table 参数必须显式指定表名或通配符(如 t_*),【不填 -table 将默认生成所有表,极易污染 model 目录】。
goctl rpc 生成关键参数
goctl rpc protoc user.proto --go_out=./pb --go-grpc_out=./pb --zrpc_out=.
--zrpc_out=. 表示将生成的 zrpc 接口和服务骨架(如 user.go、userclient/)直接输出到当前目录,而非 pb 子目录;若误写为 --zrpc_out=./pb,则 service 文件会被塞进 pb 目录,导致 import 路径错误、编译失败。
proto 文件必须声明 option go_package;goctl 不校验该字段是否存在,但缺失会导致生成的 Go 文件无法被正确 import。











