From 559059f54ec7c78331765b3568c750679a0b490e Mon Sep 17 00:00:00 2001 From: Markus Tenghamn Date: Fri, 24 Dec 2021 08:44:04 +0100 Subject: [PATCH] Fixes #7 (#8) --- database.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/database.go b/database.go index 2351210..01392b7 100644 --- a/database.go +++ b/database.go @@ -8,9 +8,26 @@ import ( "gorm.io/driver/postgres" "gorm.io/driver/sqlite" "gorm.io/gorm" + "time" ) func connectToDatabase(c config.Config) (db *gorm.DB, err error) { + return connectLoop(c, 0) +} + +func connectLoop(c config.Config, count int) (db *gorm.DB, err error) { + db, err = attemptConnection(c) + if err != nil { + if count > 300 { + return db, fmt.Errorf("could not connect to database after 300 seconds") + } + time.Sleep(1 * time.Second) + return connectLoop(c, count+1) + } + return db, err +} + +func attemptConnection(c config.Config) (db *gorm.DB, err error) { if c.Database == "sqlite" { // In-memory sqlite if no database name is specified dsn := "file::memory:?cache=shared"