必须先安装buffalo cli,否则所有生成命令(如buffalo generate、buffalo destroy)都会报“command not found”;因为buffalo的代码生成器是cli内置子命令,go install方式直接编译完整二进制,不依赖项目目录或go.mod,且易于更新。

必须先装 buffalo CLI,否则所有生成命令(如 buffalo generate、buffalo destroy)都会报 command not found。
为什么 go install 是首选方式
Buffalo 的代码生成器就是 buffalo 二进制本身——它不是独立工具,而是 CLI 内置的子命令。所以安装 CLI 就等于装好了生成器。
-
go install github.com/gobuffalo/cli/cmd/buffalo@latest会编译并安装完整 CLI,包含generate、destroy、resource等全部代码生成功能 - 该方式不依赖项目目录或
go.mod,在任意路径执行都生效 - 比预编译包更易更新:只需重复运行该命令即可升级到最新版
- 若失败(比如提示
cannot find module providing package),大概率是 Go 版本
buffalo generate 常用子命令和典型场景
生成器核心价值在于快速 scaffold 符合 Buffalo 约定的结构,避免手写样板代码出错。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
-
buffalo generate resource users name:string email:string:生成 model、migration、actions、template 全套,适合 CRUD 页面原型 -
buffalo generate action api/v1 users#list:只生成路由 + handler 函数,适合纯 API 场景,不碰模板和迁移 -
buffalo generate migration add_status_to_users status:string:只生成models/migrations/YYYYMMDDHHMMSS_*.up.fizz文件,内容已含字段定义,无需手动写 fizz 语法 -
buffalo generate worker send_email:生成后台任务骨架(需启用 workers 插件) - 所有生成命令默认遵守 Buffalo 目录约定;若目录已存在同名文件,会跳过而非覆盖——不会意外删你写的逻辑
PATH 配置不到位,生成器就“不存在”
这是新手卡住最久的一环:命令装了,但 buffalo generate 仍报错。
-
go install默认把二进制放到$GOPATH/bin/buffalo,而该路径未必在系统PATH中 - 验证方法:新开终端,执行
which buffalo,无输出即说明 PATH 缺失 - Linux/macOS:在
~/.bashrc或~/.zshrc加一行export PATH="$GOPATH/bin:$PATH",然后source它 - Windows(非 Scoop):需手动将
%USERPROFILE%\go\bin加入系统环境变量 PATH - 没加 PATH 时,即使
go install成功,buffalo version和buffalo generate都会失败
生成器本身不校验项目结构是否合法,它只按约定写文件;真正容易出问题的是后续执行 buffalo dev 或 buffalo migrate 时——比如生成的 migration 文件名时间戳格式错一位,就会被静默忽略。所以每次生成后,建议立刻检查 models/migrations/ 下文件名是否符合 YYYYMMDDHHMMSS_*.up.fizz 格式。










