From ab7e65456c10b04011b09860d6e96aef953a0dba Mon Sep 17 00:00:00 2001 From: Elijah Duffy Date: Mon, 9 Jun 2025 13:39:31 -0700 Subject: [PATCH] store opts in a pointer & add logging --- migrate.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/migrate.go b/migrate.go index 361c7cb..ded11a4 100644 --- a/migrate.go +++ b/migrate.go @@ -47,7 +47,7 @@ var ( Migration *goose.Provider // migrationsConfig stores the configuration for the migrations module. - migrationsConfig MigrationOpts + migrationsConfig *MigrationOpts // migrationsModule is the singleton module instance for the migrations subsystem. migrationsModule *app.Module @@ -72,13 +72,13 @@ var ( ) // MigrationsConfig returns the current configuration for the migrations module. -func MigrationsConfig() MigrationOpts { +func MigrationsConfig() *MigrationOpts { migrationsModule.RequireLoaded() // ensure the migrations module is loaded return migrationsConfig } // ModuleMigrations returns the migrations module with the provided configuration. -func ModuleMigrations(cfg MigrationOpts) *app.Module { +func ModuleMigrations(cfg *MigrationOpts) *app.Module { if migrationsModule != nil { panic("ModuleMigrations initialized multiple times") } @@ -92,7 +92,6 @@ func ModuleMigrations(cfg MigrationOpts) *app.Module { if cfg.FS == nil { panic("Migration filesystem (FS) must be set in the configuration") } - migrationsConfig = cfg // store configuration at package level migrationsModule = app.NewModule(ModuleMigrationsName, app.ModuleOpts{ @@ -139,23 +138,24 @@ func ModuleAutoMigrate(enabled bool) *app.Module { } // setupMigrations initializes the goose migration provider. -func setupMigrations(_ *app.Module) error { +func setupMigrations(mod *app.Module) error { + cfg := migrationsConfig var err error - - if err := goose.SetDialect(string(migrationsConfig.Dialect)); err != nil { + if err := goose.SetDialect(string(cfg.Dialect)); err != nil { migrationsModule.Logger().Error("Couldn't set database dialect for goose", "err", err) return err } // Set base filesystem for goose migrations - goose.SetBaseFS(migrationsConfig.FS) + goose.SetBaseFS(cfg.FS) // Initialize the goose migration provider - Migration, err = goose.NewProvider(migrationsConfig.Dialect, migrationsConfig.SQLO(), migrationsConfig.FS) + Migration, err = goose.NewProvider(cfg.Dialect, cfg.SQLO(), cfg.FS) if err != nil { migrationsModule.Logger().Error("Couldn't initialize goose migration provider", "err", err) return err } + mod.Logger().Info("Goose migration provider initialized", "dialect", cfg.Dialect, "basePath", cfg.BasePath, "fs", cfg.FS) return nil }