diff options
Diffstat (limited to 'cmd/migrate')
| -rw-r--r-- | cmd/migrate/main.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/cmd/migrate/main.go b/cmd/migrate/main.go new file mode 100644 index 0000000..20452f9 --- /dev/null +++ b/cmd/migrate/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "context" + "flag" + "fmt" + "os" + "time" + + "aigw/internal/controlplane" +) + +func main() { + environment := flag.String("database-url-env", "AIGW_DATABASE_URL", "environment variable containing the PostgreSQL URL") + flag.Parse() + databaseURL := os.Getenv(*environment) + if databaseURL == "" { + fmt.Fprintf(os.Stderr, "%s is empty\n", *environment) + os.Exit(1) + } + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + if err := controlplane.MigrateDatabase(ctx, databaseURL); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + fmt.Println("control-plane schema is up to date") +} |
