I merged the often requested increase of User.username max_length to 254 
characters [1] a few weeks ago, however, the ticket was reopened pointing 
out this issue:


"This patch breaks on MySQL installations using the utf8mb4 charset, 
because it breaks the index length limit - it comes out at a maximum of 254 
* 4 = 1016 bytes whilst by default InnoDB can only index 767 bytes. I found 
this because I am using utf8mb4 in django-mysql's tests.

Django encourages using the utf8 charset (3 bytes per character - cannot 
store emojis), although there has been some discussion for moving to 
utf8mb4 in #18392 <https://code.djangoproject.com/ticket/18392>. One can 
index 254 character utf8mb4 fields in MySQL by using a couple settings as 
described in that ticket, Django could enforce those, or the field could be 
changed to just 191 characters instead which is the maximum indexable (767 
// 4)."

Do we have any MySQL enthusiasts willing to champion a patch (or at least a 
decision design about the best way to proceed) for #18392 [2] to resolve 
this? 

[1] https://code.djangoproject.com/ticket/20846
[2] https://code.djangoproject.com/ticket/18392

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/ceb190b5-5218-446c-a6a0-0aea75e7fd6b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to