53 lines
934 B
Go
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,
|
|
)
|
|
}
|