summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2017-06-07 13:51:54 +0200
committerMorris Jobke <hey@morrisjobke.de>2017-07-05 13:01:19 +0200
commit5d9d1b1cb5c4c301e7c60f58225e9a85168eafbe (patch)
treebaac8378b873cc0518c664100b71288f953355bd
parent817783e4c7e93fc7bf3bdb50a014966415e19605 (diff)
downloadnextcloud-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.php13
-rw-r--r--lib/private/DB/MigrationService.php10
-rw-r--r--lib/public/Migration/IMigrationStep.php13
-rw-r--r--lib/public/Migration/SimpleMigrationStep.php13
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) {
}
}