- make gorm.DB singleton.

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

View File

@@ -10,6 +10,7 @@ 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 {
if singletonDB == nil {
db, err := gorm.Open("mysql", dbStr) db, err := gorm.Open("mysql", dbStr)
if err == nil { if err == nil {
singletonDB = db
return 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{})
} }