diff --git a/cmd/migrate/main.go b/cmd/migrate/main.go index 4722923..b5adc90 100644 --- a/cmd/migrate/main.go +++ b/cmd/migrate/main.go @@ -2,6 +2,7 @@ package main import ( "log" + "os" "path/filepath" "accounting-app/internal/config" @@ -20,13 +21,30 @@ func main() { filepath.Join("..", "..", ".env"), // Explicit path } + var envDir string for _, envPath := range envPaths { if err := godotenv.Load(envPath); err == nil { log.Printf("Loaded environment from: %s", envPath) + envDir = filepath.Dir(envPath) break } } + // Load specific environment file if APP_ENV is set (e.g. .env.dev, .env.prod) + if appEnv := os.Getenv("APP_ENV"); appEnv != "" { + targetEnvFile := ".env." + appEnv + targetEnvPath := targetEnvFile + if envDir != "" && envDir != "." { + targetEnvPath = filepath.Join(envDir, targetEnvFile) + } + + if err := godotenv.Overload(targetEnvPath); err == nil { + log.Printf("Loaded specific environment config from: %s", targetEnvPath) + } else { + log.Printf("Note: Specific environment file %s not found or could not be loaded", targetEnvPath) + } + } + // Load configuration cfg := config.Load()