26 lines
636 B
Go
26 lines
636 B
Go
package server
|
|
|
|
import (
|
|
"log"
|
|
"database/sql"
|
|
"github.com/spf13/viper"
|
|
_ "github.com/lib/pq"
|
|
)
|
|
|
|
func InitDatabase(config *viper.Viper) *sql.DB {
|
|
connectionString := config.GetString("database.connection_string")
|
|
driverName := config.GetString("database.driver_name")
|
|
if connectionString == "" {
|
|
log.Fatalf("Database connection string is missing")
|
|
}
|
|
dbHandler, err := sql.Open(driverName, connectionString)
|
|
if err != nil {
|
|
log.Fatalf("Error while initializing database: %v", err)
|
|
}
|
|
err = dbHandler.Ping()
|
|
if err != nil {
|
|
dbHandler.Close()
|
|
log.Fatalf("Error while validating database: %v", err)
|
|
}
|
|
return dbHandler
|
|
} |