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 }