summaryrefslogtreecommitdiff
path: root/cmd/migrate
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cmd/migrate/main.go28
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")
+}