diff options
Diffstat (limited to 'internal/database/migrations')
-rw-r--r-- | internal/database/migrations/init.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/database/migrations/init.go b/internal/database/migrations/init.go index 2b5a212..754a097 100644 --- a/internal/database/migrations/init.go +++ b/internal/database/migrations/init.go @@ -1,3 +1,28 @@ package migrations +import ( + "log/slog" + + migrate "github.com/rubenv/sql-migrate" +) + //go:generate go-bindata -o ./migrations.bindata.go -pkg migrations -ignore=\\*.go ./... + +func GetMigrationSource() *migrate.AssetMigrationSource { + return &migrate.AssetMigrationSource{ + Asset: Asset, + AssetDir: AssetDir, + Dir: ".", + } +} + +func RunMigrations(db migrate.Execer, driver string) (int, error) { + source := GetMigrationSource() + n, err := migrate.Exec(db, driver, source, migrate.Up) + if err != nil { + slog.Error("failed to run migrations", "error", err) + return 0, err + } + slog.Info("applied database migrations", "count", n) + return n, nil +} |