diff options
Diffstat (limited to 'cmd/migrate/main.go')
| -rw-r--r-- | cmd/migrate/main.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cmd/migrate/main.go b/cmd/migrate/main.go index 20452f9..a24b7bc 100644 --- a/cmd/migrate/main.go +++ b/cmd/migrate/main.go @@ -12,6 +12,7 @@ import ( func main() { environment := flag.String("database-url-env", "AIGW_DATABASE_URL", "environment variable containing the PostgreSQL URL") + status := flag.Bool("status", false, "print the latest applied migration instead of changing the schema") flag.Parse() databaseURL := os.Getenv(*environment) if databaseURL == "" { @@ -20,6 +21,15 @@ func main() { } ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() + if *status { + migration, err := controlplane.MigrationStatusDatabase(ctx, databaseURL) + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + fmt.Printf("version=%d name=%s checksum=%s applied_at=%s\n", migration.Version, migration.Name, migration.Checksum, migration.AppliedAt.Format(time.RFC3339)) + return + } if err := controlplane.MigrateDatabase(ctx, databaseURL); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) |
