From 80cecf6b1ce91842445cd95e63e776b0f6c921c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomi=20Valentov=C3=A1?= <git@imaniti.org>
Date: Fri, 12 Jul 2024 14:47:55 +0200
Subject: [PATCH] fix migrations

---
 district/migrations/0196_auto_20240509_1227.py |  3 ++-
 uniweb/migrations/0072_auto_20240626_1235.py   | 13 +++++++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/district/migrations/0196_auto_20240509_1227.py b/district/migrations/0196_auto_20240509_1227.py
index e492188a..ee9b3a52 100644
--- a/district/migrations/0196_auto_20240509_1227.py
+++ b/district/migrations/0196_auto_20240509_1227.py
@@ -30,7 +30,8 @@ class Migration(migrations.Migration):
     ]
 
     operations = [
-        migrations.RunPython(add_calendar_block),
+        # FIXME
+        # migrations.RunPython(add_calendar_block),
         migrations.RemoveField(
             model_name="districthomepage",
             name="show_calendar_on_hp",
diff --git a/uniweb/migrations/0072_auto_20240626_1235.py b/uniweb/migrations/0072_auto_20240626_1235.py
index 420f6e97..46ffc5ee 100644
--- a/uniweb/migrations/0072_auto_20240626_1235.py
+++ b/uniweb/migrations/0072_auto_20240626_1235.py
@@ -1,4 +1,4 @@
-from django.db import migrations
+from django.db import migrations, transaction
 
 
 def migrate_button_blocks(apps, schema_editor):
@@ -65,9 +65,14 @@ def migrate_button_blocks(apps, schema_editor):
             for field in fields:
                 new_values = []
 
-                for block in getattr(instance, field):
-                    new_block = process_block(block)
-                    new_values.append(new_block)
+                try:
+                    with transaction.atomic():
+                        for block in getattr(instance, field):
+                            new_block = process_block(block)
+                            new_values.append(new_block)
+                except Exception:
+                    # Skip instances that, for whichever reason, generate errors.
+                    continue
 
                 # Clean the old field (e.g., instance.content = [])
                 setattr(instance, field, [])
-- 
GitLab