From 184a45b773990f50597b538772f7f0c9b6c95b9a Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 30 Mar 2021 10:04:09 +0200 Subject: [PATCH] Update migration for MySQL compliance --- .../migrations/0179_auto_20210311_1653.py | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/pretix/base/migrations/0179_auto_20210311_1653.py b/src/pretix/base/migrations/0179_auto_20210311_1653.py index 9e45392a1..fd38ea2c8 100644 --- a/src/pretix/base/migrations/0179_auto_20210311_1653.py +++ b/src/pretix/base/migrations/0179_auto_20210311_1653.py @@ -5,24 +5,29 @@ from django.db import migrations def clean_duplicates(apps, schema_editor): while True: + # Double subquery to avoid MySQL error 1093 delete_options = """ DELETE FROM pretixbase_questionanswer_options WHERE questionanswer_id IN ( - SELECT MIN(qa.id) - FROM pretixbase_questionanswer qa - GROUP BY qa.cartposition_id, qa.orderposition_id, qa.question_id - HAVING COUNT(*) > 1 + SELECT minid FROM ( + SELECT MIN(qa.id) minid + FROM pretixbase_questionanswer qa + GROUP BY qa.cartposition_id, qa.orderposition_id, qa.question_id + HAVING COUNT(*) > 1 + ) AS tmptable ); """ delete_answers = """ DELETE FROM pretixbase_questionanswer WHERE pretixbase_questionanswer.id IN ( - SELECT MIN(qa.id) - FROM pretixbase_questionanswer qa - GROUP BY qa.cartposition_id, qa.orderposition_id, qa.question_id - HAVING COUNT(*) > 1 + SELECT minid FROM ( + SELECT MIN(qa.id) minid + FROM pretixbase_questionanswer qa + GROUP BY qa.cartposition_id, qa.orderposition_id, qa.question_id + HAVING COUNT(*) > 1 + ) AS tmptable ); """ with schema_editor.connection.cursor() as cursor: