diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php index 89a8d42f08..29f717b886 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); + $table = $schema->createTable('migrations'); + $table->addColumn('app', Type::STRING, ['length' => 255]); + $table->addColumn('version', Type::STRING, ['length' => 255]); + $table->setPrimaryKey(['app', 'version']); - $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); + $this->connection->migrateToSchema($schema->getWrappedSchema()); $this->migrationTableCreated = true;