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 }