Skip to content

sgns::IMigrationStep

Interface for a migration step between two schema versions.

#include <IMigrationStep.hpp>

Inherited by sgns::Migration0_2_0To1_0_0, sgns::Migration1_0_0To3_4_0, sgns::Migration3_4_0To3_5_0, sgns::Migration3_5_0To3_5_1, sgns::Migration3_5_1To3_6_0

Public Functions

Name
virtual ~IMigrationStep() =default
virtual std::string FromVersion() const =0
Get the version from which the migration starts.
virtual std::string ToVersion() const =0
Get the version to which the migration applies.
virtual outcome::result< void > Init() =0
Initializes internal variables after constructor.
virtual outcome::result< void > Apply() =0
Execute the migration logic.
virtual outcome::result< void > ShutDown() =0
Shuts down internal variables.
virtual outcome::result< bool > IsRequired() const =0
Check if migration is required.
std::tuple< int, int, int > ParseVersion(const std::string & version) const
bool IsVersionLessThan(const std::string & lhs, const std::string & rhs) const

Public Functions Documentation

function ~IMigrationStep

virtual ~IMigrationStep() =default

function FromVersion

virtual std::string FromVersion() const =0

Get the version from which the migration starts.

Return: The source version string.

Reimplemented by: sgns::Migration0_2_0To1_0_0::FromVersion, sgns::Migration1_0_0To3_4_0::FromVersion, sgns::Migration3_4_0To3_5_0::FromVersion, sgns::Migration3_5_0To3_5_1::FromVersion, sgns::Migration3_5_1To3_6_0::FromVersion

function ToVersion

virtual std::string ToVersion() const =0

Get the version to which the migration applies.

Return: The target version string.

Reimplemented by: sgns::Migration0_2_0To1_0_0::ToVersion, sgns::Migration1_0_0To3_4_0::ToVersion, sgns::Migration3_4_0To3_5_0::ToVersion, sgns::Migration3_5_0To3_5_1::ToVersion, sgns::Migration3_5_1To3_6_0::ToVersion

function Init

virtual outcome::result< void > Init() =0

Initializes internal variables after constructor.

Return: Outcome of the operation

Reimplemented by: sgns::Migration0_2_0To1_0_0::Init, sgns::Migration1_0_0To3_4_0::Init, sgns::Migration3_4_0To3_5_0::Init, sgns::Migration3_5_0To3_5_1::Init, sgns::Migration3_5_1To3_6_0::Init

function Apply

virtual outcome::result< void > Apply() =0

Execute the migration logic.

Return: Outcome of the operation.

Reimplemented by: sgns::Migration0_2_0To1_0_0::Apply, sgns::Migration1_0_0To3_4_0::Apply, sgns::Migration3_4_0To3_5_0::Apply, sgns::Migration3_5_0To3_5_1::Apply, sgns::Migration3_5_1To3_6_0::Apply

function ShutDown

virtual outcome::result< void > ShutDown() =0

Shuts down internal variables.

Return: Outcome of the operation

Reimplemented by: sgns::Migration0_2_0To1_0_0::ShutDown, sgns::Migration1_0_0To3_4_0::ShutDown, sgns::Migration3_4_0To3_5_0::ShutDown, sgns::Migration3_5_0To3_5_1::ShutDown, sgns::Migration3_5_1To3_6_0::ShutDown

function IsRequired

virtual outcome::result< bool > IsRequired() const =0

Check if migration is required.

Return: outcome::result true if migration should run; false to skip. On error, returns failure.

Reimplemented by: sgns::Migration0_2_0To1_0_0::IsRequired, sgns::Migration1_0_0To3_4_0::IsRequired, sgns::Migration3_4_0To3_5_0::IsRequired, sgns::Migration3_5_0To3_5_1::IsRequired, sgns::Migration3_5_1To3_6_0::IsRequired

function ParseVersion

inline std::tuple< int, int, int > ParseVersion(
    const std::string & version
) const

function IsVersionLessThan

inline bool IsVersionLessThan(
    const std::string & lhs,
    const std::string & rhs
) const

Updated on 2026-03-04 at 13:10:43 -0800