From 8ca48819d31ba0ed319a246f6e1fcaf57fbd4c4d Mon Sep 17 00:00:00 2001 From: Danny van Kooten Date: Sun, 11 Dec 2016 15:37:51 +0100 Subject: [PATCH] return error from db.SetupDatabaseConnection --- ana.go | 5 ++++- db/db.go | 12 ++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/ana.go b/ana.go index e6aae73..224e1f8 100644 --- a/ana.go +++ b/ana.go @@ -16,7 +16,10 @@ func main() { } // setup database connection - conn := db.SetupDatabaseConnection() + conn, err := db.SetupDatabaseConnection() + if err != nil { + log.Fatal(err) + } defer conn.Close() // parse & run cli commands diff --git a/db/db.go b/db/db.go index 519429f..86b4654 100644 --- a/db/db.go +++ b/db/db.go @@ -4,26 +4,26 @@ import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" - "log" "os" ) var Conn *sql.DB -func SetupDatabaseConnection() *sql.DB { +// SetupDatabaseConnection opens up & returns a SQL connection +func SetupDatabaseConnection() (*sql.DB, error) { var err error var dataSourceName = fmt.Sprintf("%s:%s@%s/%s", os.Getenv("ANA_DATABASE_USER"), os.Getenv("ANA_DATABASE_PASSWORD"), os.Getenv("ANA_DATABASE_HOST"), os.Getenv("ANA_DATABASE_NAME")) Conn, err = sql.Open("mysql", dataSourceName) if err != nil { - log.Fatal(err.Error()) // Just for example purpose. You should use proper error handling instead of panic + return nil, err } - // Open doesn't open a connection. Validate DSN data: + // Open doesn't open a connection right away. Validate DSN by calling Ping(). err = Conn.Ping() if err != nil { - log.Fatal(err.Error()) // proper error handling instead of panic in your app + return nil, err } - return Conn + return Conn, nil }