Merge pull request #8121 from nextcloud/bugfix/8085/migrations-table-has-old-collation

Create the migrations table also with the UTF8mb4 collation
This commit is contained in:
Morris Jobke 2018-01-31 14:43:40 +01:00 committed by GitHub
commit c95f6a1dc9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 11 deletions

View File

@ -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;