Create the migrations table also with the UTF8mb4 collation

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2018-01-31 13:13:14 +01:00 committed by Morris Jobke
parent bb7a2b2329
commit 119de6467f
No known key found for this signature in database
GPG Key ID: FE03C3A163FEDE68
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;