- make gorm.DB singleton.

This commit is contained in:
gazebo
2018-09-06 22:29:08 +08:00
parent 5814b27af4
commit d575ed5cb0

View File

@@ -9,7 +9,8 @@ import (
) )
var ( var (
dbStr string dbStr string
singletonDB *gorm.DB
) )
func Init() { func Init() {
@@ -17,12 +18,17 @@ func Init() {
AutoMigrate() AutoMigrate()
} }
// todo gorm要求用单一的db如果每次重新调用Open会导致too many connection错误
func GetDB() *gorm.DB { func GetDB() *gorm.DB {
db, err := gorm.Open("mysql", dbStr) if singletonDB == nil {
if err == nil { db, err := gorm.Open("mysql", dbStr)
return db if err == nil {
singletonDB = db
return db
}
panic(fmt.Sprintf("AutoMigrate failed with error:%v", err))
} }
panic(fmt.Sprintf("AutoMigrate failed with error:%v", err)) return singletonDB
} }
func AutoMigrate() { func AutoMigrate() {
@@ -38,4 +44,5 @@ func AutoMigrate() {
db.AutoMigrate(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{}) db.AutoMigrate(&model.SkuVendorCategory{}, &model.StoreSkuCategoryMap{}, &model.SkuName{}, &model.Sku{}, &model.SkuNamePlaceBind{}, &model.StoreSkuBind{})
db.Set("gorm:table_options", "CHARSET=utf8mb4").AutoMigrate(&model.SkuCategory{}) db.Set("gorm:table_options", "CHARSET=utf8mb4").AutoMigrate(&model.SkuCategory{})
db.AutoMigrate(&model.WeiXins{}, &model.JxBackendUser{}) db.AutoMigrate(&model.WeiXins{}, &model.JxBackendUser{})
// db.AutoMigrate(&model.DurableTask{}, &model.DurableTaskItem{})
} }