go-kit/gormdb/postgresql.go

28 lines
872 B
Go

package gormdb
import (
"fmt"
"go.uber.org/zap"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
)
// GetGormDB initializes a connection to the database and returns a handle
func GetPostgresqlDB(log *zap.Logger, host, name, user, pass, port string) (*gorm.DB, error) {
log.Info(fmt.Sprintf("[GetPostgresqlDB] Connecting to 'database' %s on host %s as user '%s'", name, host, user))
dsn := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", host, port, user, pass, name)
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
if err != nil {
log.Error(fmt.Sprintf("[GetPostgresqlDB] err=%s\n", err))
return db, err
}
log.Info(fmt.Sprintf("[GetPostgresqlDB] Successfully connected on host '%s' to database '%s' as user '%s'", host, name, user))
return db, nil
}