當您生成一個新的 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 協議》,轉載必須註明作者和本文連結