Django migration with uuid field generates duplicated values

前端 未结 4 412
庸人自扰
庸人自扰 2020-12-05 16:58

I have a uuid field (not a primary key). The generated migration is:

from __future__ import unicode_literals

from django.db import migrations,          


        
4条回答
  •  情书的邮戳
    2020-12-05 17:40

    Here is an example doing everything in one single migration thanks to a RunPython call.

    # -*- coding: utf-8 -*
    from __future__ import unicode_literals
    
    from django.db import migrations, models
    import uuid
    
    
    def create_uuid(apps, schema_editor):
        Device = apps.get_model('device_app', 'Device')
        for device in Device.objects.all():
            device.uuid = uuid.uuid4()
            device.save()
    
    
    class Migration(migrations.Migration):
    
        dependencies = [
            ('device_app', 'XXXX'),
        ]
    
        operations = [
            migrations.AddField(
                model_name='device',
                name='uuid',
                field=models.UUIDField(blank=True, null=True),
            ),
            migrations.RunPython(create_uuid),
            migrations.AlterField(
                model_name='device',
                name='uuid',
                field=models.UUIDField(unique=True)
            )
        ]
    

提交回复
热议问题