MySQL Index creation with long name fails
|Reported by:||hgeerts@…||Owned by:||nobody|
|Component:||Database layer (models, ORM)||Version:||1.2-beta|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
With the introduction of the through model for ManyToManyFields in  django creates an index for all ForeignKeys on the through model.
Because of the naming scheme used by the through model you can easily exceed the 64 character limit for the index name on MySQL.
django-1.1 did not have this problem because it created an index with 'ALTER TABLE %s ADD CONSTRAINT %s FOREIGN KEY (%s) REFERENCES %s (%s)%s;' for which the name is already truncated.
Syncdb only generates an error but does not stop so this is only a minor inconvenience.
The attached patch truncates the index name if applicable and sets the max_name_length for mysql to 64.