diff options
Diffstat (limited to 'db.go')
-rw-r--r-- | db.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/db.go b/db.go new file mode 100644 index 0000000..164984a --- /dev/null +++ b/db.go @@ -0,0 +1,44 @@ +package main + +import ( + "database/sql" + "fmt" + "log" +) + +func connectToDatabase() { + log.Println("[Database] Initializing the database connection") + db = connectToDB() + db.SetMaxOpenConns(75) + pingDB() +} + +// connectToDB returns a pointer to an sql database writing to the database +func connectToDB() *sql.DB { + //connStr := fmt.Sprintf("user=%s dbname=%s sslmode=%s", DBUSER, DBNAME, DBSSLMODE) + connStr := fmt.Sprintf("host=%s port=%d user=%s "+ + "password=%s dbname=%s sslmode=disable", + DBHOST, DBPORT, DBUSER, DBPASSWD, DBNAME) + db := dbConnect(connStr) + return db +} + +// dbConnect connects to a PostgreSQL database +func dbConnect(connStr string) *sql.DB { + // connect to the database + db, err := sql.Open("postgres", connStr) + if err != nil { + log.Fatalf("[ E ] connection: %v", err) + } + + return db +} + +func pingDB() { + // ping the db + err := db.Ping() + if err != nil { + panic(err) + } + log.Println("[ ] Done Pinging the DB") +} |