@@ -17,14 +17,14 @@ import (
1717)
1818
1919var (
20- connectionToDB = make ( map [ string ] * gorm. DB )
21- connectionToDBLock = sync.Mutex {}
20+ connectionToDB sync. Map
21+ connectionToDBLock sync.Mutex
2222 pingWarning sync.Once
2323)
2424
2525func BuildGorm (config config.Config , logger logger.Interface , pool database.Pool , connection string ) (* gorm.DB , error ) {
26- if db , ok := connectionToDB [ connection ] ; ok {
27- return db , nil
26+ if db , ok := connectionToDB . Load ( connection ) ; ok {
27+ return db .( * gorm. DB ) , nil
2828 }
2929
3030 if len (pool .Writers ) == 0 {
@@ -34,8 +34,8 @@ func BuildGorm(config config.Config, logger logger.Interface, pool database.Pool
3434 connectionToDBLock .Lock ()
3535 defer connectionToDBLock .Unlock ()
3636
37- if db , ok := connectionToDB [ connection ] ; ok {
38- return db , nil
37+ if db , ok := connectionToDB . Load ( connection ) ; ok {
38+ return db .( * gorm. DB ) , nil
3939 }
4040
4141 gormConfig := & gorm.Config {
@@ -82,7 +82,7 @@ func BuildGorm(config config.Config, logger logger.Interface, pool database.Pool
8282 db .SetConnMaxIdleTime (connMaxIdleTime * time .Second )
8383 db .SetConnMaxLifetime (connMaxLifetime * time .Second )
8484
85- connectionToDB [ connection ] = instance
85+ connectionToDB . Store ( connection , instance )
8686
8787 return instance , nil
8888 }
@@ -112,7 +112,17 @@ func BuildGorm(config config.Config, logger logger.Interface, pool database.Pool
112112 return nil , err
113113 }
114114
115- connectionToDB [ connection ] = instance
115+ connectionToDB . Store ( connection , instance )
116116
117117 return instance , nil
118118}
119+
120+ func ResetConnections () {
121+ connectionToDBLock .Lock ()
122+ defer connectionToDBLock .Unlock ()
123+
124+ connectionToDB .Range (func (key , value any ) bool {
125+ connectionToDB .Delete (key )
126+ return true
127+ })
128+ }
0 commit comments