veza/veza-backend-api/cmd/migrate_tool/main.go

46 lines
885 B
Go
Raw Normal View History

2025-12-03 19:29:37 +00:00
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
}