SchemaManager class
Manages database schema versioning and migrations.
This class handles:
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 | |