diff --git a/cmd/bootstrap/main.go b/cmd/bootstrap/main.go index 6aa38ca..1d087c7 100644 --- a/cmd/bootstrap/main.go +++ b/cmd/bootstrap/main.go @@ -11,6 +11,7 @@ import ( "github.com/joho/godotenv" "github.com/robindittmar/dttmr-api/internal/config" "github.com/robindittmar/dttmr-api/internal/database" + "github.com/robindittmar/dttmr-api/internal/database/migrations" "github.com/robindittmar/dttmr-api/internal/domain" "github.com/robindittmar/dttmr-api/internal/repository" ) @@ -51,7 +52,7 @@ func main() { } }() - if err := database.RunMigrations(db); err != nil { + if err := database.RunMigrations(db, migrations.MigrationFS); err != nil { slog.Error("failed to run migrations", slog.Any("error", err)) os.Exit(1) } diff --git a/internal/database/migrate.go b/internal/database/migrate.go index 70cfa27..31bf4b3 100644 --- a/internal/database/migrate.go +++ b/internal/database/migrate.go @@ -2,9 +2,9 @@ package database import ( "database/sql" - "embed" "errors" "fmt" + "io/fs" "log/slog" "github.com/golang-migrate/migrate/v4" @@ -12,10 +12,7 @@ import ( "github.com/golang-migrate/migrate/v4/source/iofs" ) -//go:embed migrations/*.sql -var migrationFS embed.FS - -func RunMigrations(db *sql.DB) error { +func RunMigrations(db *sql.DB, migrationFS fs.FS) error { sourceDriver, err := iofs.New(migrationFS, "migrations") if err != nil { return fmt.Errorf("failed to load embedded migrations: %w", err) diff --git a/internal/database/migrations/embed.go b/internal/database/migrations/embed.go new file mode 100644 index 0000000..2d1fab3 --- /dev/null +++ b/internal/database/migrations/embed.go @@ -0,0 +1,6 @@ +package migrations + +import "embed" + +//go:embed *.sql +var MigrationFS embed.FS