[Valentino Heman Budiarto] ff78042fe4 1234
2026-03-06 14:00:50 +07:00

49 lines
1.0 KiB
Go

package config
import (
"fmt"
"log"
"os"
"s-class-backend/models"
"github.com/joho/godotenv"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
var DB *gorm.DB
func ConnectDatabase() {
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
}