Buffalo框架提供完整命令行工具链:①buffalo new初始化项目(支持--api);②buffalo dev启动热重载服务;③buffalo g model/resource生成代码;④buffalo db migrate/rollback管理数据库;⑤buffalo routes/build查看路由与构建部署包;⑥buffalo plugins install/task扩展功能。

要快速搭建、生成和管理Go Web项目,必须掌握Buffalo框架提供的命令行子命令,它们覆盖从初始化到部署的完整开发链路。
项目创建与初始化
执行 buffalo new myapp 创建一个名为 myapp 的全新项目。该命令会自动拉取依赖、生成标准目录结构(如 actions/、models/、templates/),并初始化数据库配置文件。【必须在空目录下运行,否则会报错退出】
添加 --api 标志可跳过前端资产(assets/、templates/)生成,适合纯API服务:buffalo new myapp --api。
若已存在 Go 模块,需先执行 go mod init myapp,再运行 buffalo new,否则 buffalo 无法正确识别模块路径。
开发服务器与热重载
进入项目根目录后,直接运行 buffalo dev 启动开发服务器。它默认监听 :3000,自动编译 Go 代码、重建二进制,并刷新浏览器(需启用 LiveReload 插件)。
这一步会同时启动 Web 服务和文件监视器;若终端卡住无响应,通常是端口被占用,可加 -p 4000 指定新端口。
buffalo dev 不会自动迁移数据库,需手动执行 buffalo db migrate 后再启动,否则访问页面时会触发 panic。
模型、资源与迁移管理
方法一:生成带数据库表的模型
运行 buffalo g model user name:string email:string,将自动生成 models/user.go、migration 文件及测试桩。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
方法二:一键生成完整资源(CRUD)buffalo g resource users name email → 自动创建 model + action + template + route + migration 全套文件。
方法三:执行数据库迁移
① buffalo db migrate 运行所有未执行的 up 迁移;
② buffalo db migrate -v 查看当前迁移版本;
③ buffalo db rollback 回退最后一次迁移(慎用,生产环境不可逆)。
路由与静态资源构建
查看当前全部路由:运行 buffalo routes,输出格式为 METHOD PATH HANDLER,含中间件标记(如 @authenticate)。
构建生产环境静态资源:执行 buffalo build --static,将 assets 编译压缩并写入 public/ 目录,供 Nginx 或 CDN 直接托管。
构建可执行二进制:使用 buffalo build(不加 --static),输出 ./bin/myapp,该文件内嵌模板与静态资源,单文件即可部署。
插件与扩展工具
安装插件:运行 buffalo plugins install github.com/gobuffalo/buffalo-pop,用于增强数据库操作能力。
列出已安装插件:执行 buffalo plugins list,确认插件状态是否 active。
运行自定义脚本:通过 buffalo task my:script 调用 grifts/ 目录下的任务函数,适合数据初始化或批量处理。

















