From 3e3349ff6a75185a353960955db032d5b16c71cc Mon Sep 17 00:00:00 2001 From: "Grail Finder (aider)" Date: Sat, 5 Apr 2025 12:51:25 +0300 Subject: feat: add automatic database migrations on init --- internal/database/sql/main.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'internal/database/sql/main.go') diff --git a/internal/database/sql/main.go b/internal/database/sql/main.go index 5a523f6..d149e35 100644 --- a/internal/database/sql/main.go +++ b/internal/database/sql/main.go @@ -9,6 +9,7 @@ import ( "github.com/jmoiron/sqlx" _ "github.com/mattn/go-sqlite3" "github.com/pkg/errors" + "github.com/rubenv/sql-migrate" ) var ( @@ -45,6 +46,20 @@ func Init(DBURI string) (*DB, error) { if err := testConnection(result.Conn); err != nil { return nil, err } + + // Run migrations + migrations := &migrate.AssetMigrationSource{ + Asset: migrations.Asset, + AssetDir: migrations.AssetDir, + Dir: "migrations", + } + + n, err := migrate.Exec(result.Conn.DB, dbDriver, migrations, migrate.Up) + if err != nil { + return nil, errors.Wrap(err, "failed to run migrations") + } + log.Info("applied database migrations", "count", n) + return &result, nil } -- cgit v1.2.3