Skip to content

Issue with getRenameIndexSQL being case-insensitive #2974

Open
@verganis

Description

@verganis

We found out an issue with DB migration created through Doctrine/DBAL because an index created as "IDX_E0AEF1841F7B7B69" was later referred to as "idx_e0aef1841f7b7b69".

This works well on Windows systems but when the migration is performed on a Mac system it fails, simply because the index called "idx_e0aef1841f7b7b69" does not exist.

We are working on Symfony / Mysql stack and our DB collations are "latin1_swedish_ci" on both Windows and Mac machines.

We looked in the documentation trying to find some configuration that could be set to make Doctrine migration case-sensitive but we did not succeed, so this might be a bug.

First migration
$this->addSql('CREATE TABLE team_closure (id INT AUTO_INCREMENT NOT NULL, ancestor INT NOT NULL, descendant INT NOT NULL, depth INT NOT NULL, INDEX IDX_B77EFCE6B4465BB (ancestor), INDEX IDX_B77EFCE69A8FAD16 (descendant), INDEX IDX_E0AEF1841F7B7B69 (depth), UNIQUE INDEX IDX_5AD3014880E23D3F (ancestor, descendant), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB');

Second migration
$this->addSql('ALTER TABLE team_closure RENAME INDEX idx_e0aef1841f7b7b69 TO IDX_8AFC573B1D9A3396');

We normally generate migrations running the following commands in the shell


php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions