package main import ( "context" "fmt" "os/signal" "go.uber.org/zap" "git.derfenix.pro/fenix/protect_trans_info/application" "git.derfenix.pro/fenix/protect_trans_info/application/repository" ) func main() { cfg, err := application.NewConfig() if err != nil { panic(fmt.Sprintf("load config: %v", err)) } db, err := repository.NewDB(cfg.DB) if err != nil { panic(fmt.Sprintf("new db: %v", err)) } logger, err := zap.NewProduction() if err != nil { panic(fmt.Sprintf("new logger: %v", err)) } ctx, cancel := signal.NotifyContext(context.Background()) defer cancel() if err := application.Migrate(ctx, db, logger); err != nil { logger.Fatal("migrate failed", zap.Error(err)) } }