From a03b5c97e9b847fd2c6c4c1f0feaa4404b24e7df Mon Sep 17 00:00:00 2001 From: Morten Lied Johansen Date: Wed, 13 Dec 2023 23:51:56 +0100 Subject: [PATCH] Attempt to continue when encountering errors in createDBIfNotExist (#258) * Attempt to continue when encountering errors in createDBIfNotExist The database might already exist even if we encounter errors in createDBIfNotExist, so instead of erroring out, log warnings and attempt to continue. Signed-off-by: Morten Lied Johansen Co-authored-by: Brad Davidson --- pkg/drivers/pgsql/pgsql.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/drivers/pgsql/pgsql.go b/pkg/drivers/pgsql/pgsql.go index 915df7c4..774cd299 100644 --- a/pkg/drivers/pgsql/pgsql.go +++ b/pkg/drivers/pgsql/pgsql.go @@ -137,14 +137,15 @@ func createDBIfNotExist(dataSourceName string) error { u.Path = "/postgres" db, err := sql.Open("pgx", u.String()) if err != nil { - return err + logrus.Warnf("failed to ensure existence of database %s: unable to connect to default postgres database: %v", dbName, err) + return nil } defer db.Close() var exists bool err = db.QueryRow("SELECT 1 FROM pg_database WHERE datname = $1", dbName).Scan(&exists) if err != nil && err != sql.ErrNoRows { - return err + logrus.Warnf("failed to check existence of database %s, going to attempt create: %v", dbName, err) } stmt := createDB + dbName + ";" @@ -153,9 +154,10 @@ func createDBIfNotExist(dataSourceName string) error { logrus.Tracef("SETUP EXEC : %v", util.Stripped(stmt)) _, err = db.Exec(stmt) if err != nil { - return err + logrus.Warnf("failed to create database %s: %v", dbName, err) + } else { + logrus.Tracef("created database: %s", dbName) } - logrus.Tracef("created database: %s", dbName) } return nil }