summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2018-07-19 15:32:36 +0200
committerJoas Schilling <coding@schilljs.com>2018-07-19 15:32:36 +0200
commit891de38080f27011cb050301c7948b52e3141470 (patch)
tree8d915861c0159f2cc0bbda87a8649f7c12c123c0 /lib
parent596655fa1add88cc13eb8cf3a6e43950829d29be (diff)
downloadnextcloud-server-891de38080f27011cb050301c7948b52e3141470.tar.gz
nextcloud-server-891de38080f27011cb050301c7948b52e3141470.zip
Only create the schema when moving between databases
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/DB/MigrationService.php24
1 files changed, 15 insertions, 9 deletions
diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php
index cc2889dae0c..6f5a74103a5 100644
--- a/lib/private/DB/MigrationService.php
+++ b/lib/private/DB/MigrationService.php
@@ -376,13 +376,14 @@ class MigrationService {
* Applies all not yet applied versions up to $to
*
* @param string $to
+ * @param bool $schemaOnly
* @throws \InvalidArgumentException
*/
- public function migrate($to = 'latest') {
+ public function migrate($to = 'latest', $schemaOnly = false) {
// read known migrations
$toBeExecuted = $this->getMigrationsToExecute($to);
foreach ($toBeExecuted as $version) {
- $this->executeStep($version);
+ $this->executeStep($version, $schemaOnly);
}
}
@@ -432,14 +433,17 @@ class MigrationService {
* Executes one explicit version
*
* @param string $version
+ * @param bool $schemaOnly
* @throws \InvalidArgumentException
*/
- public function executeStep($version) {
+ public function executeStep($version, $schemaOnly = false) {
$instance = $this->createInstance($version);
- $instance->preSchemaChange($this->output, function() {
- return new SchemaWrapper($this->connection);
- }, ['tablePrefix' => $this->connection->getPrefix()]);
+ if (!$schemaOnly) {
+ $instance->preSchemaChange($this->output, function() {
+ return new SchemaWrapper($this->connection);
+ }, ['tablePrefix' => $this->connection->getPrefix()]);
+ }
$toSchema = $instance->changeSchema($this->output, function() {
return new SchemaWrapper($this->connection);
@@ -450,9 +454,11 @@ class MigrationService {
$toSchema->performDropTableCalls();
}
- $instance->postSchemaChange($this->output, function() {
- return new SchemaWrapper($this->connection);
- }, ['tablePrefix' => $this->connection->getPrefix()]);
+ if (!$schemaOnly) {
+ $instance->postSchemaChange($this->output, function() {
+ return new SchemaWrapper($this->connection);
+ }, ['tablePrefix' => $this->connection->getPrefix()]);
+ }
$this->markAsExecuted($version);
}