Files
solopm-server/cmd/solopm/migrate.go
T
2026-08-14 11:29:11 -06:00

42 lines
908 B
Go

package main
import (
"fmt"
"os"
"solopm.com/solopm-server/internal/config"
"solopm.com/solopm-server/internal/db"
)
// runMigrations applies pending migrations at startup. Called by serve()
// unless a future --no-migrate flag disables it.
func runMigrations(databaseURL string) error {
return db.MigrateUp(databaseURL)
}
// runMigrateCmd implements `solopm migrate up|down`.
func runMigrateCmd(args []string) {
if len(args) != 1 || (args[0] != "up" && args[0] != "down") {
fmt.Fprintln(os.Stderr, "usage: solopm migrate up|down")
os.Exit(1)
}
cfg, err := config.Load()
if err != nil {
fmt.Fprintln(os.Stderr, "error:", err)
os.Exit(1)
}
switch args[0] {
case "up":
err = db.MigrateUp(cfg.DatabaseURL)
case "down":
err = db.MigrateDown(cfg.DatabaseURL)
}
if err != nil {
fmt.Fprintln(os.Stderr, "error:", err)
os.Exit(1)
}
fmt.Println("migrate " + args[0] + ": ok")
}