diff --git a/db_store/config.go b/db_store/config.go index c09d282..3f77070 100644 --- a/db_store/config.go +++ b/db_store/config.go @@ -38,6 +38,9 @@ func (cfg *DBConfig) AsDSN() string { } func (cfg *DBConfig) Validate() error { - _, err := sqlx.Connect("mysql", cfg.AsDSN()) - return err + db, err := sqlx.Connect("mysql", cfg.AsDSN()) + if err != nil { + return err + } + return db.Close() } diff --git a/db_store/golbat.go b/db_store/golbat.go index eebfb9b..928ebbd 100644 --- a/db_store/golbat.go +++ b/db_store/golbat.go @@ -2,6 +2,7 @@ package db_store import ( "context" + "time" "github.com/jmoiron/sqlx" "github.com/paulmach/orb/geojson" @@ -52,6 +53,8 @@ func NewGolbatDBStore(config DBConfig, logger *logrus.Logger) (*GolbatDBStore, e } db.SetMaxOpenConns(config.MaxPool) db.SetMaxIdleConns(5) + db.SetConnMaxLifetime(5 * time.Minute) + db.SetConnMaxIdleTime(5 * time.Minute) return &GolbatDBStore{ logger: logger, diff --git a/db_store/nests.go b/db_store/nests.go index 841dc64..8a263fe 100644 --- a/db_store/nests.go +++ b/db_store/nests.go @@ -579,6 +579,7 @@ func (st *NestsDBStore) Migrate(migratePath string) error { if err != nil { return fmt.Errorf("failed to connect to the DB: %w", err) } + defer db.Close() dbDriver, err := migrate_mysql.WithInstance(db, migrateConfig) if err != nil { @@ -691,6 +692,8 @@ func NewNestsDBStore(config DBConfig, logger *logrus.Logger) (*NestsDBStore, err db.SetMaxOpenConns(config.MaxPool) db.SetMaxIdleConns(5) + db.SetConnMaxLifetime(5 * time.Minute) + db.SetConnMaxIdleTime(5 * time.Minute) return &NestsDBStore{ logger: logger,