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 }