From 9039360835e38a6de809332eb785ede124d71dea Mon Sep 17 00:00:00 2001 From: "Grail Finder (aider)" Date: Sat, 5 Apr 2025 13:54:17 +0300 Subject: fix: properly initialize and run database migrations --- internal/database/migrations/init.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'internal/database/migrations/init.go') 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 +} -- cgit v1.2.3