数据库集成
Buffalo 数据库集成
当您生成一个新的 Buffalo
应用程序时,您可以选择带有 -- db
类型标志的目标数据库。 例如,要生成一个支持 MySQL 数据库的新应用程序,你可以编写以下代码:
$ buffalo new coke --db-type mysql
默认情况下,Buffalo
将生成一个以 PostgreSQL
作为后备数据库的应用程序。
跳过数据库支持
如果您想在不使用 Pop
的情况下处理数据库,或者如果您正在构建一个没有数据库的应用程序,也可以使用 -- skip-Pop
标志来跳过所有数据库组件的生成。
$ buffalo new coke --skip-pop
事务中间件
水牛城提供了一个 pop
中间件来简化水牛城内的数据库使用: github.com/gobuffalo/Buffalo-Pop
设置
如果您在创建新项目时选择使用 Pop
,则默认情况下为您配置此中间件。
func App() *buffalo.App {
if app == nil {
// [...]
app.Use(poptx.PopTransaction(models.DB))
// [...]
app.GET("/", HomeHandler)
}
return app
}
Poptransaction (models.DB)
使用到配置数据库的连接创建一个新的 PopTransaction
中间件:
记录在请求调用数据库期间花费的总时间
在数据库事务中包装每个 HTTP 请求
如果执行中间件和操作没有错误,则提交; 响应状态为2xx 或3xx否则后退
手动处理事务
如果您需要手动处理事务,您可以跳过给定路由的中间件:
func App() *buffalo.App {
if app == nil {
// [...]
txm := poptx.PopTransaction(models.DB)
app.Use(txm)
a.Middleware.Skip(txm, HomeHandler)
// [...]
app.POST("/form", FormHandler)
app.GET("/", HomeHandler)
}
return app
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: