diff options
Diffstat (limited to 'lib/public/Migration/IMigrationStep.php')
-rw-r--r-- | lib/public/Migration/IMigrationStep.php | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/public/Migration/IMigrationStep.php b/lib/public/Migration/IMigrationStep.php new file mode 100644 index 00000000000..d738fee8e8d --- /dev/null +++ b/lib/public/Migration/IMigrationStep.php @@ -0,0 +1,60 @@ +<?php + +declare(strict_types=1); +/** + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OCP\Migration; + +use Closure; +use OCP\DB\ISchemaWrapper; + +/** + * @since 13.0.0 + */ +interface IMigrationStep { + /** + * Human-readable name of the migration step + * + * @return string + * @since 14.0.0 + */ + public function name(): string; + + /** + * Human-readable description of the migration step + * + * @return string + * @since 14.0.0 + */ + public function description(): string; + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @psalm-param Closure():ISchemaWrapper $schemaClosure + * @param array $options + * @since 13.0.0 + */ + public function preSchemaChange(IOutput $output, Closure $schemaClosure, array $options); + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @psalm-param Closure():ISchemaWrapper $schemaClosure + * @param array $options + * @return null|ISchemaWrapper + * @since 13.0.0 + */ + public function changeSchema(IOutput $output, Closure $schemaClosure, array $options); + + /** + * @param IOutput $output + * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper` + * @psalm-param Closure():ISchemaWrapper $schemaClosure + * @param array $options + * @since 13.0.0 + */ + public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options); +} |