28 lines
872 B
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
|
||
|
}
|