summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/private/DB/MigrationService.php22
1 files changed, 10 insertions, 12 deletions
diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php
index 89a8d42f08a..29f717b886c 100644
--- a/lib/private/DB/MigrationService.php
+++ b/lib/private/DB/MigrationService.php
@@ -130,22 +130,20 @@ class MigrationService {
// Drop the table, when it didn't match our expectations.
$this->connection->dropTable('migrations');
+
+ // Recreate the schema after the table was dropped.
+ $schema = new SchemaWrapper($this->connection);
+
} catch (SchemaException $e) {
// Table not found, no need to panic, we will create it.
}
- $tableName = $this->connection->getPrefix() . 'migrations';
- $tableName = $this->connection->getDatabasePlatform()->quoteIdentifier($tableName);
-
- $columns = [
- 'app' => new Column($this->connection->getDatabasePlatform()->quoteIdentifier('app'), Type::getType('string'), ['length' => 255]),
- 'version' => new Column($this->connection->getDatabasePlatform()->quoteIdentifier('version'), Type::getType('string'), ['length' => 255]),
- ];
- $table = new Table($tableName, $columns);
- $table->setPrimaryKey([
- $this->connection->getDatabasePlatform()->quoteIdentifier('app'),
- $this->connection->getDatabasePlatform()->quoteIdentifier('version')]);
- $this->connection->getSchemaManager()->createTable($table);
+ $table = $schema->createTable('migrations');
+ $table->addColumn('app', Type::STRING, ['length' => 255]);
+ $table->addColumn('version', Type::STRING, ['length' => 255]);
+ $table->setPrimaryKey(['app', 'version']);
+
+ $this->connection->migrateToSchema($schema->getWrappedSchema());
$this->migrationTableCreated = true;