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
| Name | Type | Description |
|---|---|---|
| $ledger | Milpa\Plugin\Contracts\MigrationLedgerInterface | |
| $context | Milpa\Plugin\Contracts\MigrationContext |
PluginMigrationRunner::migrate()
public function migrate(string $pluginName, string $migrationsDir, string $namespace): arrayRun all pending migrations for a plugin.
Parameters
| Name | Type | Description |
|---|---|---|
| $pluginName | string | |
| $migrationsDir | string | |
| $namespace | string |
PluginMigrationRunner::rollback()
public function rollback(string $pluginName, string $migrationsDir, string $namespace, string $targetVersion): arrayRollback migrations to a target version (exclusive): every executed migration with version > target reverts, newest first.
Parameters
| Name | Type | Description |
|---|---|---|
| $pluginName | string | |
| $migrationsDir | string | |
| $namespace | string | |
| $targetVersion | string |
PluginMigrationRunner::getPending()
public function getPending(string $pluginName, string $migrationsDir, string $namespace): arrayPending (not yet executed) migrations for a plugin, semver ascending.
Parameters
| Name | Type | Description |
|---|---|---|
| $pluginName | string | |
| $migrationsDir | string | |
| $namespace | string |
PluginMigrationRunner::getExecutedVersions()
public function getExecutedVersions(string $pluginName): arrayVersions already executed for a plugin, execution order ascending.
Parameters
| Name | Type | Description |
|---|---|---|
| $pluginName | string |
PluginMigrationRunner::getExecutedMigrations()
public function getExecutedMigrations(string $pluginName): arrayFull ledger rows for a plugin, execution order ascending.
Parameters
| Name | Type | Description |
|---|---|---|
| $pluginName | string |