27 lines
830 B
Python
27 lines
830 B
Python
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),
|
|
]
|