fix: migration 加唯一约束前自动去重,补充部署清理脚本

This commit is contained in:
XingQue
2026-06-24 05:20:44 +08:00
parent 574fe5e860
commit a8b6e46f61
5 changed files with 151 additions and 0 deletions

View File

@@ -1,4 +1,18 @@
from django.db import migrations, models
from django.db.models import Max
def _dedupe_duoci_fenhong(apps, schema_editor):
DuociFenhong = apps.get_model('products', 'DuociFenhong')
for row in DuociFenhong.objects.values(
'club_id', 'huiyuan', 'yonghuid', 'cishu',
).annotate(max_id=Max('id')):
DuociFenhong.objects.filter(
club_id=row['club_id'],
huiyuan=row['huiyuan'],
yonghuid=row['yonghuid'],
cishu=row['cishu'],
).exclude(id=row['max_id']).delete()
class Migration(migrations.Migration):
@@ -13,6 +27,7 @@ class Migration(migrations.Migration):
name='club_id',
field=models.CharField(db_index=True, default='xq', max_length=16, verbose_name='所属俱乐部'),
),
migrations.RunPython(_dedupe_duoci_fenhong, migrations.RunPython.noop),
migrations.AlterUniqueTogether(
name='duocifenhong',
unique_together={('club_id', 'huiyuan', 'yonghuid', 'cishu')},