[DBAL-373] Indexes and uniqueConstraints has been ignored Created: 26/Oct/12 Updated: 20/Apr/13 |
|
| Status: | Awaiting Feedback |
| Project: | Doctrine DBAL |
| Component/s: | Schema Managers |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Security Level: | All |
| Type: | Bug | Priority: | Minor |
| Reporter: | Diego Oliveira | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
Ubuntu 12.04 with MySQL 5.5 and PHP 5.4 |
||
| Attachments: |
|
| Description |
|
I using the Doctrine Migrations and when I declared my entity with the indexes section, the index name has been ignored. It's like this: indexes: but, the diff tools ignore it and give me this code: and it should be: Notice: I open the same bug on the migrations repository in github and @kimhemsoe told me to open here, since this is generated by DBAL component. |
| Comments |
| Comment by Padraig O'Sullivan [ 11/Dec/12 ] |
|
Did you specify an index name in the indexes property for your entity in your PHP file? In this case, you should have something like:
indexes={@Index(name="IDX_ADDRESS_CITY", columns={"city_id"})}
That should result in the correct SQL being generated. If I modify the above to:
indexes={@Index(columns={"city_id"})}
I also get a migration that has SQL with an auto-generated index name. |
| Comment by Diego Oliveira [ 02/Feb/13 ] |
|
Yes I did specify a name, as you can see: uniqueConstraints:
UNIQUE_STATE_SLUG:
columns: slug
indexes:
IDX_USER_ADDRESS:
columns: address_id
I don't try do to it using annotations because I choose do use yaml to describe my entities. I will take a look on the source code to see if I can fix it and send a PR. |
| Comment by Diego Oliveira [ 02/Apr/13 ] |
|
I already sent this patch to Guilherme Blanco, but I guess he doesn't have time to take a look on it. I guess my solution it's not ideal, but it solve the problem and can be a base to make a better solution. |
| Comment by Benjamin Eberlei [ 20/Apr/13 ] |
|
Diego Oliveira the fix doesn't seem too nice with the additional boolean flag. I would rather like to fix the root cause instead of adding this solution. |
| Comment by Benjamin Eberlei [ 20/Apr/13 ] |
|
The issue is tricky, because we cannot just move the index definitions above, they will need the columns, however that directly generates the index in the schema tool. Maybe if the gather join column methods would check if they can add an index already it would work. |