Skip to content

Commit 046ce9b

Browse files
committed
fixes migration connection leakage
1 parent a94affc commit 046ce9b

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

database/migrations.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,20 @@ func getMigrator(gormDB shared.DB) (*migrate.Migrate, error) {
5454
func RunMigrations(db shared.DB) error {
5555
// if no shared db is provided, create a new one
5656
// only provide a db during testing
57-
if db == nil {
58-
db = NewGormDB(NewPgxConnPool(GetPoolConfigFromEnv()))
57+
ownedPool := db == nil
58+
if ownedPool {
59+
cfg := GetPoolConfigFromEnv()
60+
cfg.MaxOpenConns = 1
61+
cfg.MinConns = 0
62+
db = NewGormDB(NewPgxConnPool(cfg))
5963
}
6064
// Get the underlying sql.DB from GORM
6165
migrator, err := getMigrator(db)
6266
if err != nil {
6367
return fmt.Errorf("failed to create migrator: %w", err)
6468
}
65-
if db == nil {
66-
// only close the connetion pool if WE own it.
69+
if ownedPool {
70+
// only close the connection pool if WE own it.
6771
defer migrator.Close()
6872
}
6973
versionBefore, _, _ := migrator.Version()
@@ -78,7 +82,7 @@ func RunMigrations(db shared.DB) error {
7882
sqlDB, dbErr := db.DB()
7983
if dbErr == nil {
8084
_, err = sqlDB.Exec("UPDATE schema_migrations SET dirty = false, version = $1", versionBefore)
81-
if migrateErr != nil {
85+
if err != nil {
8286
monitoring.Alert("failed to reset migration state after failed migration", err)
8387
}
8488
}

0 commit comments

Comments
 (0)