summaryrefslogtreecommitdiff
path: root/database.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2026-06-02 19:52:18 +0200
committerxengineering <me@xengineering.eu>2026-06-02 19:52:18 +0200
commita750aa4ecf7ecab519b53d7f3ac082425ba50686 (patch)
tree3949dfc9c21779027717783784d81d1faa5634f6 /database.go
parentbd1ead99fd53ad8c3c016b59d67f5bf58ade5095 (diff)
downloadfinserv-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.go18
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
+}