diff --git a/umap/migrations/0018_datalayer_uuid.py b/umap/migrations/0018_datalayer_uuid.py new file mode 100644 index 00000000..5f5f2add --- /dev/null +++ b/umap/migrations/0018_datalayer_uuid.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.8 on 2024-02-19 17:40 + +import uuid + +from django.db import migrations, models + + +def gen_uuid(apps, schema_editor): + DataLayer = apps.get_model("umap", "DataLayer") + for row in DataLayer.objects.all(): + row.uuid = uuid.uuid4() + row.save(update_fields=["uuid"]) + + + +class Migration(migrations.Migration): + dependencies = [ + ("umap", "0017_migrate_to_openstreetmap_oauth2"), + ] + + operations = [ + migrations.AddField( + model_name="datalayer", + name="uuid", + field=models.UUIDField(default=uuid.uuid4, editable=False, null=True), + ), + migrations.RunPython(gen_uuid, reverse_code=migrations.RunPython.noop), + migrations.AlterField("datalayer", name="id", field=models.CharField(max_length=100)), + migrations.AlterField( + model_name="datalayer", + name="uuid", + field=models.UUIDField(default=uuid.uuid4, editable=False, unique=True, primary_key=True), + ), + ] diff --git a/umap/models.py b/umap/models.py index 4bff5f75..9bda2979 100644 --- a/umap/models.py +++ b/umap/models.py @@ -1,6 +1,7 @@ import json import os import time +import uuid from django.conf import settings from django.contrib.auth.models import User @@ -373,7 +374,7 @@ class DataLayer(NamedModel): (EDITORS, _("Editors only")), (OWNER, _("Owner only")), ) - + uuid = models.UUIDField(unique=True, default=uuid.uuid4, editable=False) map = models.ForeignKey(Map, on_delete=models.CASCADE) description = models.TextField(blank=True, null=True, verbose_name=_("description")) geojson = models.FileField(upload_to=upload_to, blank=True, null=True)