Skip to content
docsv0.13.1

PluginMigrationRunner

Discovers and executes plugin schema migrations (v2 contract). Migration classes live in the plugin's Migrations/ directory, named Version_X_Y_Z.php, implement {@see PluginMigrationInterface}, and run in semver order against the host-provided {@see MigrationContext}. Execution is tracked through {@see MigrationLedgerInterface}. A discovered file whose class does not conform to the contract is a LOUD error — never the silent skip the legacy runner performed (the "invisible migration" bug).

PluginMigrationRunner::__construct()

public function __construct(Milpa\Plugin\Contracts\MigrationLedgerInterface $ledger, Milpa\Plugin\Contracts\MigrationContext $context):

Parameters

Parameters of __construct()
NameTypeDescription
$ledgerMilpa\Plugin\Contracts\MigrationLedgerInterface
$contextMilpa\Plugin\Contracts\MigrationContext

PluginMigrationRunner::migrate()

public function migrate(string $pluginName, string $migrationsDir, string $namespace): array

Run all pending migrations for a plugin.

Parameters

Parameters of migrate()
NameTypeDescription
$pluginNamestring
$migrationsDirstring
$namespacestring

PluginMigrationRunner::rollback()

public function rollback(string $pluginName, string $migrationsDir, string $namespace, string $targetVersion): array

Rollback migrations to a target version (exclusive): every executed migration with version > target reverts, newest first.

Parameters

Parameters of rollback()
NameTypeDescription
$pluginNamestring
$migrationsDirstring
$namespacestring
$targetVersionstring

PluginMigrationRunner::getPending()

public function getPending(string $pluginName, string $migrationsDir, string $namespace): array

Pending (not yet executed) migrations for a plugin, semver ascending.

Parameters

Parameters of getPending()
NameTypeDescription
$pluginNamestring
$migrationsDirstring
$namespacestring

PluginMigrationRunner::getExecutedVersions()

public function getExecutedVersions(string $pluginName): array

Versions already executed for a plugin, execution order ascending.

Parameters

Parameters of getExecutedVersions()
NameTypeDescription
$pluginNamestring

PluginMigrationRunner::getExecutedMigrations()

public function getExecutedMigrations(string $pluginName): array

Full ledger rows for a plugin, execution order ascending.

Parameters

Parameters of getExecutedMigrations()
NameTypeDescription
$pluginNamestring