diff options
| author | xengineering <me@xengineering.eu> | 2026-06-02 19:52:18 +0200 |
|---|---|---|
| committer | xengineering <me@xengineering.eu> | 2026-06-02 19:52:18 +0200 |
| commit | a750aa4ecf7ecab519b53d7f3ac082425ba50686 (patch) | |
| tree | 3949dfc9c21779027717783784d81d1faa5634f6 /database.go | |
| parent | bd1ead99fd53ad8c3c016b59d67f5bf58ade5095 (diff) | |
| download | finserv-a750aa4ecf7ecab519b53d7f3ac082425ba50686.tar finserv-a750aa4ecf7ecab519b53d7f3ac082425ba50686.tar.zst finserv-a750aa4ecf7ecab519b53d7f3ac082425ba50686.zip | |
Add MigrateToLatest
This function will be used most by the production software to update
the database schema to the latest known version.
Diffstat (limited to 'database.go')
| -rw-r--r-- | database.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/database.go b/database.go index 44a172d..3651cf2 100644 --- a/database.go +++ b/database.go @@ -79,3 +79,21 @@ func UserVersion(db *sql.DB) (int, error) { return version, nil } + +func MigrateToLatest(db *sql.DB) error { + for i := range migrations { + v, err := UserVersion(db) + if err != nil { + return fmt.Errorf("Failed UserVersion() inside MigrateToLatest(): %w", err) + } + + if i == v { + err = Migrate(db, i) + if err != nil { + return fmt.Errorf("Failed Migrate() inside MigrateToLatest(): %w", err) + } + } + } + + return nil +} |
