diff --git a/gen/settings/Settings.pkl.go b/gen/settings/Settings.pkl.go index 1ab34be..7889266 100644 --- a/gen/settings/Settings.pkl.go +++ b/gen/settings/Settings.pkl.go @@ -18,7 +18,7 @@ type Settings struct { Metrics *metrics.Config `pkl:"metrics"` - Migrations *migrations.Config `pkl:"migrations"` + Migrations *[]migrations.Migration `pkl:"migrations"` StartGCAfterMessageProcess bool `pkl:"startGCAfterMessageProcess"` diff --git a/gen/settings/migrations/Config.pkl.go b/gen/settings/migrations/Config.pkl.go index 26e1f5b..84ce0cf 100644 --- a/gen/settings/migrations/Config.pkl.go +++ b/gen/settings/migrations/Config.pkl.go @@ -8,7 +8,6 @@ import ( ) type Config struct { - Migrations *[]Migration `pkl:"migrations"` } // LoadFromPath loads the pkl module at the given path and evaluates it into a Config diff --git a/internal/migrator/migrator.go b/internal/migrator/migrator.go index dd94900..a0130cb 100644 --- a/internal/migrator/migrator.go +++ b/internal/migrator/migrator.go @@ -12,9 +12,9 @@ import ( ) type Migrator struct { - logger *zerolog.Logger - cfg migrations.Config - migrations map[driver.Driver]MigrationInterface + logger *zerolog.Logger + mList []migrations.Migration + mByDriver map[driver.Driver]MigrationInterface } func NewMigrator( @@ -26,7 +26,7 @@ func NewMigrator( } c := cfg.Settings.Migrations migrators := map[driver.Driver]MigrationInterface{} - for _, m := range *c.Migrations { + for _, m := range *c { switch m.GetDriver() { case driver.Clickhouse: c, ok := m.(migrations.Clickhouse) @@ -35,20 +35,20 @@ func NewMigrator( } migrators[m.GetDriver()] = NewMigrateClick(c) case driver.Empty: - return nil, fmt.Errorf("empty migrations not supported") + return nil, fmt.Errorf("empty mByDriver not supported") } } return &Migrator{ - cfg: *c, - migrations: migrators, - logger: l, + mList: *c, + mByDriver: migrators, + logger: l, }, nil } func (m *Migrator) Migrate() error { gr := errgroup.Group{} - for _, mgr := range *m.cfg.Migrations { + for _, mgr := range m.mList { m.logger.Info().Msgf("Starting migration: %s", mgr.GetDriver()) - migrator := m.migrations[mgr.GetDriver()] + migrator := m.mByDriver[mgr.GetDriver()] gr.Go(func() error { err := migrator.Run(mgr.GetPath()) if err != nil { diff --git a/pkl/settings/Settings.pkl b/pkl/settings/Settings.pkl index d2dd4e7..e47bb55 100644 --- a/pkl/settings/Settings.pkl +++ b/pkl/settings/Settings.pkl @@ -10,6 +10,6 @@ import "migrations/MigrationsConfig.pkl" logger: LoggerConfig healthCheck: HealthcheckConfig? metrics: MetricsConfig? -migrations:MigrationsConfig? +migrations:Listing? startGCAfterMessageProcess: Boolean = false gracefulShutdownDelay:Duration = 15.s diff --git a/pkl/settings/migrations/MigrationsConfig.pkl b/pkl/settings/migrations/MigrationsConfig.pkl index 6f6dfe6..3b0cabf 100644 --- a/pkl/settings/migrations/MigrationsConfig.pkl +++ b/pkl/settings/migrations/MigrationsConfig.pkl @@ -17,5 +17,3 @@ class Clickhouse extends Migration { credentials: Common.ChCredentials engine: String? } - -migrations: Listing?