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
Post a Comment