46 lines
885 B
Go
46 lines
885 B
Go
|
|
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
|
||
|
|
}
|