必须先安装 Go 1.21+,再执行 go install github.com/gobuffalo/cli/v2@latest 安装 Buffalo CLI;buffalo new 生成项目后,须立即执行 go mod tidy、buffalo db create 和 buffalo db migrate,缺一不可,否则 buffalo dev 将因依赖缺失、库未建或表不存在而失败。

必须先装 Go 1.21+,再用 go install 装 Buffalo CLI;buffalo new 生成项目后,立刻执行 go mod tidy 和 buffalo db create,否则后续命令全会失败。
安装 Buffalo CLI 的正确方式
Buffalo 不提供二进制下载或 brew install 官方通道,唯一受支持的安装路径是 Go 的 go install。旧文档里提的 curl | sh 或 dep ensure 方式早已失效,且会导致版本错乱。
- 确认 Go 版本 ≥ 1.21:
go version输出应含go1.21或更高 - 运行安装命令:
go install github.com/gobuffalo/cli/v2@latest(注意是v2,不是cmd/buffalo) - 验证是否成功:
buffalo version应输出类似v0.18.6的版本号,且无command not found - 如果提示
GOBIN未加入$PATH,需手动添加——常见于 macOS zsh 或 Windows WSL 用户
buffalo new 后必须立刻做的三件事
生成项目只是起点,buffalo new myapp 创建的目录不等于可运行项目。跳过以下任一环节,buffalo dev 必然报错退出,且错误信息往往掩盖真实原因(比如只报 “no DB connection”,却不提示表未建)。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
- 进入项目目录后,立即执行
go mod tidy:拉取所有依赖并写入go.mod,否则models/里的pop引用会标红,buffalo dev启动时 panic - 确保数据库服务已运行(PostgreSQL 默认端口 5432,MySQL 3306),然后运行
buffalo db create:它读取环境变量DB_URL(不是database.yml!),创建空库 - 紧接着运行
buffalo db migrate:生成并执行models/migrations/下的 SQL 文件,建好users等基础表——没这步,buffalo dev会在初始化 models 时因找不到表而 crash
常见失败信号与对应检查点
终端里看到这些输出,基本能定位到哪步漏了:
-
failed to connect to database: dial tcp [::1]:5432: connect: connection refused→ 数据库进程没启,或DB_URL指向了错误 host/port -
panic: pq: relation "users" does not exist→buffalo db migrate没跑,或迁移文件被手动删改过 -
cannot find module providing package github.com/gobuffalo/pop/v6→go mod tidy没执行,或 GOPROXY 不可用导致依赖拉取中断 -
buffalo dev启动后立刻退出、无任何日志 → 极大概率是main.go或actions/app.go有语法错误,但 Go 编译器没来得及输出就挂了;此时改用go build -o test .手动构建,错误会明确打印出来
最易被忽略的是 DB_URL 环境变量——它不来自 database.yml,也不默认 fallback 到 localhost。开发时建议在 shell 中直接 export DB_URL="postgres://localhost:5432/myapp_development?sslmode=disable",或写进 .env 并用 direnv 加载。否则所有数据库相关命令都静默失败。
















