-
stvn authored
To correct the, in our case, single database entry that snuck in without a UUID during the schema change. Steps: - Make the field editable - Add `config_id` to all models missing it - Make the field noneditable again
stvn authoredTo correct the, in our case, single database entry that snuck in without a UUID during the schema change. Steps: - Make the field editable - Add `config_id` to all models missing it - Make the field noneditable again
0008_fix_uuid_backfill.py 924 B
from django.db import migrations, models
import uuid
def create_config_ids(apps, schema_editor):
LtiConfiguration = apps.get_model('lti_consumer', 'LtiConfiguration')
broken = LtiConfiguration.objects.filter(config_id__isnull=True)
for config in broken:
config.config_id = uuid.uuid4()
config.save()
class Migration(migrations.Migration):
dependencies = [
('lti_consumer', '0007_ltidlcontentitem'),
]
operations = [
migrations.AlterField(
model_name='lticonfiguration',
name='config_id',
field=models.UUIDField(default=uuid.uuid4, editable=True, unique=True),
),
migrations.RunPython(create_config_ids),
migrations.AlterField(
model_name='lticonfiguration',
name='config_id',
field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True),
),
]