This commit is contained in:
2023-05-18 17:52:26 +08:00
parent 7c499ad86a
commit 15d2d9ff95
4 changed files with 32 additions and 16 deletions

View File

@@ -58,6 +58,15 @@ func InitDefault(config *Config) error {
}
func Init(key string, config *Config) error {
db, err := New(config)
if err != nil {
return err
}
instanceMap[key] = db
return nil
}
func New(config *Config) (*gorm.DB, error) {
var (
maxLifeTime, _ = time.ParseDuration(DefaultConfig.MaxLifeTime)
maxIdleTime, _ = time.ParseDuration(DefaultConfig.MaxIdleTime)
@@ -75,7 +84,7 @@ func Init(key string, config *Config) error {
if config.MaxLifeTime != "" {
t, err := time.ParseDuration(config.MaxLifeTime)
if err != nil {
return fmt.Errorf("parse MaxLifeTime err: %s\n", err)
return nil, fmt.Errorf("parse MaxLifeTime err: %s\n", err)
}
maxLifeTime = t
@@ -84,7 +93,7 @@ func Init(key string, config *Config) error {
if config.MaxIdleTime != "" {
t, err := time.ParseDuration(config.MaxIdleTime)
if err != nil {
return fmt.Errorf("parse MaxIdleTime err: %s\n", err)
return nil, fmt.Errorf("parse MaxIdleTime err: %s\n", err)
}
maxIdleTime = t
}
@@ -103,7 +112,7 @@ func Init(key string, config *Config) error {
})
if err != nil {
return fmt.Errorf("connect mysql err: %s", err)
return nil, fmt.Errorf("connect mysql err: %s", err)
}
sqlDb, _ := db.DB()
@@ -112,8 +121,7 @@ func Init(key string, config *Config) error {
sqlDb.SetConnMaxLifetime(maxLifeTime)
sqlDb.SetConnMaxIdleTime(maxIdleTime)
instanceMap[key] = db
return nil
return db, nil
}
func DefaultGormLogger(level gormLogger.LogLevel) gormLogger.Interface {
@@ -130,12 +138,12 @@ func NewGormLogger(writer gormLogger.Writer, gormLoggerConfig gormLogger.Config)
return gormLogger.New(writer, gormLoggerConfig)
}
func Close(key string) {
func CloseInstance(key string) {
db, _ := Instance(key).DB()
db.Close()
}
func CloseAll() {
func CloseAllInstance() {
for _, v := range instanceMap {
db, _ := v.DB()
db.Close()

View File

@@ -20,7 +20,7 @@ func TestMysql(t *testing.T) {
return
}
defer CloseAll()
defer CloseAllInstance()
var res = make(map[string]interface{})
err = Instance().Table("image").Limit(1).Take(&res).Error