From d44903b56199fa9485312dcc2b7c4136abb112a0 Mon Sep 17 00:00:00 2001 From: Adam Goldsmith Date: Tue, 26 Dec 2023 12:47:06 -0500 Subject: [PATCH] membershipworks: Remove DB constraints for FKs to Members table MariaDB doesn't support partitions on tables with FKs, and performance of the Members table has become unusable due to size caused by system versioning --- ...berflag_member_alter_transaction_member.py | 36 +++++++++++++++++++ membershipworks/models.py | 5 ++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 membershipworks/migrations/0004_alter_memberflag_member_alter_transaction_member.py diff --git a/membershipworks/migrations/0004_alter_memberflag_member_alter_transaction_member.py b/membershipworks/migrations/0004_alter_memberflag_member_alter_transaction_member.py new file mode 100644 index 0000000..2d2af89 --- /dev/null +++ b/membershipworks/migrations/0004_alter_memberflag_member_alter_transaction_member.py @@ -0,0 +1,36 @@ +# Generated by Django 5.0 on 2023-12-26 17:46 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("membershipworks", "0003_alter_transaction_sid"), + ] + + operations = [ + migrations.AlterField( + model_name="memberflag", + name="member", + field=models.ForeignKey( + db_column="uid", + db_constraint=False, + on_delete=django.db.models.deletion.PROTECT, + to="membershipworks.member", + ), + ), + migrations.AlterField( + model_name="transaction", + name="member", + field=models.ForeignKey( + blank=True, + db_column="uid", + db_constraint=False, + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="transactions", + to="membershipworks.member", + ), + ), + ] diff --git a/membershipworks/models.py b/membershipworks/models.py index ce9b025..268cea9 100644 --- a/membershipworks/models.py +++ b/membershipworks/models.py @@ -259,7 +259,9 @@ class Member(BaseModel): class MemberFlag(BaseModel): - member = models.ForeignKey(Member, on_delete=models.PROTECT, db_column="uid") + member = models.ForeignKey( + Member, on_delete=models.PROTECT, db_column="uid", db_constraint=False + ) flag = models.ForeignKey(Flag, on_delete=models.PROTECT) def __str__(self): @@ -280,6 +282,7 @@ class Transaction(BaseModel): Member, on_delete=models.PROTECT, db_column="uid", + db_constraint=False, related_name="transactions", null=True, blank=True,