Skip to content

Commit

Permalink
Merge pull request #9281 from ziggie1984/export-towerclientdb-version
Browse files Browse the repository at this point in the history
wtdb: export versions of wtclient.db
  • Loading branch information
guggero authored Nov 19, 2024
2 parents 9519a23 + aaa0abc commit e1df8e9
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions watchtower/wtdb/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ func getLatestDBVersion(versions []version) uint32 {
return uint32(len(versions))
}

// LatestDBMigrationVersion returns the number of the latest existing database
// migration version available.
func LatestDBMigrationVersion() uint32 {
return getLatestDBVersion(clientDBVersions)
}

// getMigrations returns a slice of all updates with a greater number that
// curVersion that need to be applied to sync up with the latest version.
func getMigrations(versions []version, curVersion uint32) []version {
Expand All @@ -91,6 +97,27 @@ func getMigrations(versions []version, curVersion uint32) []version {
return updates
}

// CurrentDatabaseVersion reads the current database version from the database
// and returns it.
func CurrentDatabaseVersion(db kvdb.Backend) (uint32, error) {
var (
version uint32
err error
)

err = kvdb.View(db, func(tx kvdb.RTx) error {
version, err = getDBVersion(tx)
return err
}, func() {
version = 0
})
if err != nil {
return 0, err
}

return version, nil
}

// getDBVersion retrieves the current database version from the metadata bucket
// using the dbVersionKey.
func getDBVersion(tx kvdb.RTx) (uint32, error) {
Expand Down

0 comments on commit e1df8e9

Please sign in to comment.