diff --git a/aleksis/apps/abi/migrations/0002_additionalprofilefield.py b/aleksis/apps/abi/migrations/0002_additionalprofilefield.py
index 0ed991ecd836393a884a2846b7f865767f3d597d..3b699602ce9ada5c3518d4bfa32a252e827294ae 100644
--- a/aleksis/apps/abi/migrations/0002_additionalprofilefield.py
+++ b/aleksis/apps/abi/migrations/0002_additionalprofilefield.py
@@ -1,8 +1,9 @@
-# Generated by Django 3.2.4 on 2021-07-26 14:01
+# Generated by Django 3.2.4 on 2021-07-26 14:54
 
 import django.contrib.sites.managers
 from django.db import migrations, models
 import django.db.models.deletion
+import uuid
 
 
 class Migration(migrations.Migration):
@@ -19,6 +20,7 @@ class Migration(migrations.Migration):
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('extended_data', models.JSONField(default=dict, editable=False)),
                 ('name', models.CharField(max_length=255)),
+                ('field_name_field', models.UUIDField(default=uuid.UUID('5d46e4fa-2ae8-4565-a4ee-3a78272bae3e', editable=False)),
                 ('site', models.ForeignKey(default=1, editable=False, on_delete=django.db.models.deletion.CASCADE, to='sites.site')),
             ],
             options={
diff --git a/aleksis/apps/abi/model_extensions.py b/aleksis/apps/abi/model_extensions.py
index e260c6ff923bebdb7c17da392054aacb499fb2e6..c34c5af45ce81036f26402e38c2ebc5af9f97262 100644
--- a/aleksis/apps/abi/model_extensions.py
+++ b/aleksis/apps/abi/model_extensions.py
@@ -1,3 +1,5 @@
+from django.db.utils import ProgrammingError
+
 from jsonstore import fields
 
 from .models import AdditionalProfileField, Profile
@@ -5,8 +7,11 @@ from .models import AdditionalProfileField, Profile
 def update_profile_fields():
     for obj in AdditionalProfileField.objects.all():
         try:
-            Profile.field(**{object.field_name: fields.CharField(max_length=255, verbose_name=object.name)})
+            Profile.field(**{obj.field_name: fields.CharField(max_length=255, verbose_name=obj.name)})
+            Profile.fields[obj.field_name] = obj.name
         except ValueError:
             pass
-
-update_profile_fields()
+try:
+    update_profile_fields()
+except ProgrammingError:
+    pass
diff --git a/aleksis/apps/abi/models.py b/aleksis/apps/abi/models.py
index cbb8caf0738c728d2e0d32fb089e90776d43e11c..fe2b613193a9742d0cb0b0b6f7f5a327eb8e7af2 100644
--- a/aleksis/apps/abi/models.py
+++ b/aleksis/apps/abi/models.py
@@ -1,7 +1,9 @@
 from django.db import models
+from django.utils.text import slugify
 from django.utils.translation import gettext as _
 
 from jsonstore import fields
+import uuid
 
 from aleksis.core.mixins import ExtensibleModel
 from aleksis.core.models import Person
@@ -39,6 +41,7 @@ class AbiGroup(ExtensibleModel):
 
 
 class Profile(ExtensibleModel):
+    fields = {}
     person = models.OneToOneField(
         to=AbiPerson, on_delete=models.CASCADE, verbose_name=_("Person"), related_name="profile"
     )
@@ -56,7 +59,7 @@ class Profile(ExtensibleModel):
 
 class AdditionalProfileField(ExtensibleModel):
     name = models.CharField(max_length=255)
-    field_name_field = models.UUIDField(editable=False)
+    field_name_field = models.UUIDField(editable=False, default=uuid.uuid4())
 
     @property
     def field_name(self):