python - Django UUIDField Truncates from varchar(36) to char(32) -


after upgrading django 1.8.3, needed change using django_extensions.db.fields.uuidfield new django.db.models.uuidfield.

the issue old 1 defined varchar(36) hyphens , new 1 char(32) without hyphens. see size benefits of not having these hyphens in there.

i gave go and, feared, data in column gets truncated.

when check definition of field, initialized with:

def __init__(self, verbose_name=none, **kwargs):     kwargs['max_length'] = 32     super(uuidfield, self).__init__(verbose_name, **kwargs) 

this definition blocks override of max_length.

of course can update every single uuidfields have remove hyphens quite long process because tables quite big. information, kind of query have run:

update mytable set uuid_field = replace(uuid_field, '-', ''); 

so question is, have better idea running huge update every rows of every tables uuidfields?

oh well, it's way painful update every uuid fields in database, i'm reimplementing similar old django_extensions.db.fields.uuidfield.

django's first aim postgres has own uuid field type (without hyphens) mysql doesn't.

django's new uuidfield works if creating new field it's pain if have data.


Comments