49 lines
957 B
Go
49 lines
957 B
Go
package database
|
|
|
|
import (
|
|
"os"
|
|
"log"
|
|
"fmt"
|
|
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
var DB *gorm.DB
|
|
|
|
func getConnectionString() string {
|
|
var (
|
|
host = os.Getenv("DB_HOST")
|
|
port = os.Getenv("DB_PORT")
|
|
user = os.Getenv("DB_USER")
|
|
password = os.Getenv("DB_PASSWORD")
|
|
dbname = os.Getenv("DB_NAME")
|
|
)
|
|
|
|
log.Printf("[LOG] Attempting to connect with: host=%s, port=%s, user=%s, dbname=%s",
|
|
host, port, user, dbname)
|
|
|
|
connStr := fmt.Sprintf(
|
|
"postgres://%s:%s@%s:%s/%s?sslmode=disable",
|
|
user,
|
|
password,
|
|
host,
|
|
port,
|
|
dbname,
|
|
)
|
|
|
|
return connStr
|
|
}
|
|
|
|
func ConnectDB() {
|
|
db_url := getConnectionString()
|
|
|
|
db, err := gorm.Open(postgres.Open(db_url), &gorm.Config{})
|
|
if err != nil {
|
|
log.Fatal("[FAIL] Failed to connect to database:", err)
|
|
}
|
|
|
|
fmt.Println("[SUCCESS] Connected to database successfully")
|
|
DB = db
|
|
}
|