liarsdice::database::SchemaManager class

Manages database schema versioning and migrations.

This class handles:

  • Schema version tracking
  • Migration execution and rollback
  • Automatic schema updates
  • Migration validation

Constructors, destructors, conversion operators

SchemaManager(DatabaseManager& db) explicit

Public functions

void add_migration(std::unique_ptr<Migration> migration)
Add a migration to the manager.
auto load_migrations_from_directory(const boost::filesystem::path& dir) -> DatabaseResult<int>
Load migrations from a directory.
auto get_current_version() -> DatabaseResult<int>
Get current schema version.
auto get_applied_migrations() -> DatabaseResult<std::vector<SchemaVersion>>
Get all applied migrations.
auto is_version_applied(int version) -> DatabaseResult<bool>
Check if a specific version is applied.
auto migrate_to(int target_version = -1) -> DatabaseResult<void>
Migrate to a specific version.
auto rollback_to(int target_version) -> DatabaseResult<void>
Rollback to a specific version.
auto get_pending_migrations() -> DatabaseResult<std::vector<Migration*>>
Get pending migrations.
auto validate_migrations() -> DatabaseResult<void>
Validate all migrations.
auto clean_migration_history() -> DatabaseResult<void>
Clean migration history (remove orphaned entries)
auto baseline(int version, const std::string& description) -> DatabaseResult<void>
Create a baseline version.

Function documentation

DatabaseResult<int> liarsdice::database::SchemaManager::load_migrations_from_directory(const boost::filesystem::path& dir)

Load migrations from a directory.

Parameters
dir Directory containing migration files

Expected file naming convention:

  • V001__description.up.sql (upgrade script)
  • V001__description.down.sql (downgrade script, optional)

DatabaseResult<void> liarsdice::database::SchemaManager::migrate_to(int target_version = -1)

Migrate to a specific version.

Parameters
target_version Target version (-1 for latest)

DatabaseResult<void> liarsdice::database::SchemaManager::rollback_to(int target_version)

Rollback to a specific version.

Parameters
target_version Target version to rollback to

DatabaseResult<void> liarsdice::database::SchemaManager::baseline(int version, const std::string& description)

Create a baseline version.

Parameters
version Version to mark as baseline
description