Skip to content
docsv0.13.1

PluginMigrationInterface

Contract for one plugin schema migration (v2 — persistence-agnostic). Migration classes live in the plugin's Migrations/ directory, named Version_X_Y_Z.php, and are executed in semver order. A discovered file whose class does NOT conform to this contract is a loud error, never a silent skip.

PluginMigrationInterface::version()

abstract public function version(): string

The semver this migration belongs to, e.g. "1.1.0".

PluginMigrationInterface::description()

abstract public function description(): string

Human-readable summary of what the migration does.

PluginMigrationInterface::up()

abstract public function up(Milpa\Plugin\Contracts\MigrationContext $context): void

Apply the migration (forward).

Parameters

Parameters of up()
NameTypeDescription
$contextMilpa\Plugin\Contracts\MigrationContext

PluginMigrationInterface::down()

abstract public function down(Milpa\Plugin\Contracts\MigrationContext $context): void

Revert the migration. Must undo exactly what up() did.

Parameters

Parameters of down()
NameTypeDescription
$contextMilpa\Plugin\Contracts\MigrationContext