diff options
author | Joas Schilling <coding@schilljs.com> | 2017-06-07 13:51:54 +0200 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2017-07-05 13:01:19 +0200 |
commit | 5d9d1b1cb5c4c301e7c60f58225e9a85168eafbe (patch) | |
tree | baac8378b873cc0518c664100b71288f953355bd | |
parent | 817783e4c7e93fc7bf3bdb50a014966415e19605 (diff) | |
download | nextcloud-server-5d9d1b1cb5c4c301e7c60f58225e9a85168eafbe.tar.gz nextcloud-server-5d9d1b1cb5c4c301e7c60f58225e9a85168eafbe.zip |
Allow to check the schema in pre and post as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r-- | core/Command/Db/Migrations/GenerateCommand.php | 13 | ||||
-rw-r--r-- | lib/private/DB/MigrationService.php | 10 | ||||
-rw-r--r-- | lib/public/Migration/IMigrationStep.php | 13 | ||||
-rw-r--r-- | lib/public/Migration/SimpleMigrationStep.php | 13 |
4 files changed, 34 insertions, 15 deletions
diff --git a/core/Command/Db/Migrations/GenerateCommand.php b/core/Command/Db/Migrations/GenerateCommand.php index 92d8e15b66c..b6e1a17d683 100644 --- a/core/Command/Db/Migrations/GenerateCommand.php +++ b/core/Command/Db/Migrations/GenerateCommand.php @@ -51,26 +51,31 @@ class <classname> extends SimpleMigrationStep { /** * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options * @since 13.0.0 */ - public function preSchemaChange(IOutput $output) { + public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) { } /** - * @param \Closure $schema The `\Closure` returns a `Schema` + * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` * @param array $options * @return null|Schema * @since 13.0.0 */ - public function changeSchema(\Closure $schema, array $options) { + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) { return null; } /** * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options * @since 13.0.0 */ - public function postSchemaChange(IOutput $output) { + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) { } } '; diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php index 9c37a4ffa71..912166988c0 100644 --- a/lib/private/DB/MigrationService.php +++ b/lib/private/DB/MigrationService.php @@ -390,9 +390,11 @@ class MigrationService { throw new \InvalidArgumentException('Not a valid migration'); } - $instance->preSchemaChange($this->output); + $instance->preSchemaChange($this->output, function() { + return $this->connection->createSchema(); + }, ['tablePrefix' => $this->connection->getPrefix()]); - $toSchema = $instance->changeSchema(function() { + $toSchema = $instance->changeSchema($this->output, function() { return $this->connection->createSchema(); }, ['tablePrefix' => $this->connection->getPrefix()]); @@ -400,7 +402,9 @@ class MigrationService { $this->connection->migrateToSchema($toSchema); } - $instance->postSchemaChange($this->output); + $instance->postSchemaChange($this->output, function() { + return $this->connection->createSchema(); + }, ['tablePrefix' => $this->connection->getPrefix()]); $this->markAsExecuted($version); } diff --git a/lib/public/Migration/IMigrationStep.php b/lib/public/Migration/IMigrationStep.php index aeb35bc8390..49bb236ab7b 100644 --- a/lib/public/Migration/IMigrationStep.php +++ b/lib/public/Migration/IMigrationStep.php @@ -30,21 +30,26 @@ interface IMigrationStep { /** * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options * @since 13.0.0 */ - public function preSchemaChange(IOutput $output); + public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options); /** - * @param \Closure $schema The `\Closure` returns a `Schema` + * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` * @param array $options * @return null|Schema * @since 13.0.0 */ - public function changeSchema(\Closure $schema, array $options); + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options); /** * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options * @since 13.0.0 */ - public function postSchemaChange(IOutput $output); + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options); } diff --git a/lib/public/Migration/SimpleMigrationStep.php b/lib/public/Migration/SimpleMigrationStep.php index 681bd5c6b52..df4ae4e2eb6 100644 --- a/lib/public/Migration/SimpleMigrationStep.php +++ b/lib/public/Migration/SimpleMigrationStep.php @@ -30,25 +30,30 @@ abstract class SimpleMigrationStep implements IMigrationStep { /** * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options * @since 13.0.0 */ - public function preSchemaChange(IOutput $output) { + public function preSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) { } /** - * @param \Closure $schema + * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` * @param array $options * @return null|Schema * @since 13.0.0 */ - public function changeSchema(\Closure $schema, array $options) { + public function changeSchema(IOutput $output, \Closure $schemaClosure, array $options) { return null; } /** * @param IOutput $output + * @param \Closure $schemaClosure The `\Closure` returns a `Schema` + * @param array $options * @since 13.0.0 */ - public function postSchemaChange(IOutput $output) { + public function postSchemaChange(IOutput $output, \Closure $schemaClosure, array $options) { } } |