ariadne/apps/migrate/cmd/ariadne-migrate/main.go
2026-07-24 05:45:04 +09:00

53 lines
934 B
Go

package main
import (
"context"
"fmt"
"os"
"os/signal"
"syscall"
"git.toki-labs.com/toki/ariadne/internal/platform/config"
"git.toki-labs.com/toki/ariadne/internal/platform/database"
"go.uber.org/zap"
)
func main() {
ctx, stop := signal.NotifyContext(
context.Background(),
os.Interrupt,
syscall.SIGTERM,
)
defer stop()
if err := run(ctx); err != nil {
_, _ = fmt.Fprintf(os.Stderr, "ariadne migration failed: %v\n", err)
os.Exit(1)
}
}
func run(ctx context.Context) error {
cfg, err := config.Load()
if err != nil {
return err
}
logger, err := zap.NewProduction()
if err != nil {
return err
}
defer func() {
_ = logger.Sync()
}()
return database.RunMigrations(
ctx,
database.MigrationOptions{
DatabaseURL: cfg.DatabaseMigrationURL,
RuntimeRole: cfg.DatabaseRuntimeRole,
IdentityRole: cfg.DatabaseIdentityRole,
LockTimeout: cfg.MigrationLockTimeout,
},
logger,
)
}