40 lines
1016 B
Go
40 lines
1016 B
Go
package database
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.secnex.io/secnex/api-gateway/config"
|
|
"git.secnex.io/secnex/masterlog"
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
var Connection *gorm.DB
|
|
|
|
func Connect(config config.Database) error {
|
|
masterlog.Info("Connecting to database", map[string]interface{}{
|
|
"host": config.Host,
|
|
"port": config.Port,
|
|
"user": config.User,
|
|
"database": config.Database,
|
|
"sslmode": config.SSLMode,
|
|
})
|
|
dsn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=%s", config.Host, config.Port, config.User, config.Password, config.Database, config.SSLMode)
|
|
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
|
|
Logger: logger.Default.LogMode(logger.Silent),
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
masterlog.Info("Connected to database", map[string]interface{}{
|
|
"host": config.Host,
|
|
"port": config.Port,
|
|
"user": config.User,
|
|
"database": config.Database,
|
|
"sslmode": config.SSLMode,
|
|
})
|
|
Connection = db
|
|
return nil
|
|
}
|