123456789101112131415161718192021222324252627282930313233343536373839 |
- package database
- import (
- dbConfig "eta_mini_ht_api/common/component/config"
- "eta_mini_ht_api/common/component/database/dialector"
- logger "eta_mini_ht_api/common/component/log"
- "eta_mini_ht_api/common/contants"
- "gorm.io/gorm"
- "sync"
- )
- var (
- db *gorm.DB
- dbOnce sync.Once
- )
- func GetInstance() *gorm.DB {
- return db
- }
- func init() {
- if db == nil {
- dbOnce.Do(func() {
- config, ok := dbConfig.GetConfig(contants.DATABASE).(*dbConfig.DBConfig)
- if !ok {
- panic("初始化数据库失败,配置文件格式不正确")
- }
- driver := config.GetString("driver")
- dns := config.GetString("url")
- open, err := gorm.Open(dialector.GetGormDial(driver).GetDial(dns), &gorm.Config{})
- if err != nil {
- logger.Error("初始化数据库失败:%v", err.Error())
- panic("初始化数据库失败")
- }
- db = open
- logger.Info("初始化数据库成功")
- })
- }
- }
|