from django.db import migrations import uuid def generate_tokens(apps, schema_editor): Worker = apps.get_model('rota', 'Worker') db_alias = schema_editor.connection.alias for w in Worker.objects.using(db_alias).all(): if not getattr(w, 'request_token', None): new_token = uuid.uuid4() # extremely unlikely collision, but guard anyway while Worker.objects.using(db_alias).filter(request_token=new_token).exists(): new_token = uuid.uuid4() w.request_token = new_token w.save(update_fields=['request_token']) class Migration(migrations.Migration): dependencies = [ ('rota', '0005_add_request_token'), ] operations = [ migrations.RunPython(generate_tokens, reverse_code=migrations.RunPython.noop), ]