package main import ( "log" "os" "time" "veza-backend-api/internal/database" "go.uber.org/zap" ) func main() { logger, _ := zap.NewProduction() // Override config from env cfg := &database.Config{ Host: getEnv("DB_HOST", "localhost"), Port: getEnv("DB_PORT", "5432"), Username: getEnv("DB_USER", "veza"), Password: getEnv("DB_PASSWORD", "veza"), Database: getEnv("DB_NAME", "veza"), SSLMode: "disable", MaxRetries: 5, RetryInterval: 2 * time.Second, } db, err := database.NewDatabaseWithRetry(cfg, logger) if err != nil { log.Fatalf("Failed to connect: %v", err) } defer db.Close() if err := db.RunMigrations(); err != nil { log.Fatalf("Migration failed: %v", err) } logger.Info("Migrations completed successfully") } func getEnv(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback }