2026-02-19 18:09:15 +07:00

49 lines
1.1 KiB
Go

package config
import (
"fmt"
"log"
"os"
"s-class-backend/models" // Import package models
"github.com/joho/godotenv"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
var DB *gorm.DB
func ConnectDatabase() {
// Load .env
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
dbHost := os.Getenv("DB_HOST")
dbUser := os.Getenv("DB_USER")
dbPassword := os.Getenv("DB_PASSWORD")
dbName := os.Getenv("DB_NAME")
dbPort := os.Getenv("DB_PORT")
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Jakarta", dbHost, dbUser, dbPassword, dbName, dbPort)
database, err := gorm.Open(postgres.Open(dsn), &gorm.Config{
DisableForeignKeyConstraintWhenMigrating: true,
})
if err != nil {
panic("Gagal koneksi ke database!")
}
// Auto Migrate (Membuat Tabel Otomatis)
err = database.AutoMigrate(&models.User{}, &models.Room{}, &models.Booking{})
if err != nil {
fmt.Println("Gagal migrasi:", err)
} else {
fmt.Println("✅ Database Migrated!")
}
fmt.Println("🚀 Sukses terkoneksi ke Database PostgreSQL!")
DB = database
}