package database import ( "fmt" "log" "os" "gorm.io/driver/postgres" "gorm.io/gorm" ) var DB *gorm.DB func Init() { dsn := fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=%s sslmode=disable", os.Getenv("PG_HOST"), os.Getenv("PG_USER"), os.Getenv("PG_PASSWORD"), os.Getenv("PG_DATABASE"), os.Getenv("PG_PORT"), ) var err error DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } log.Println("Database connected successfully") } func Migrate(models ...interface{}) error { return DB.AutoMigrate(models...) } func Close() error { sqlDB, err := DB.DB() if err != nil { return err } return sqlDB.Close() }