From 73bc5480f3e2d86c85be89cfa4edab7d27d05cb1 Mon Sep 17 00:00:00 2001 From: byshen-dev Date: Fri, 4 Mar 2022 21:58:41 -0800 Subject: [PATCH] models: Add unique constraint on RealmUserDefault.realm. This model is by designed intended to exist on a 1:1 relationship with Realms, and we attempt to ensure that with application code, but we should have a unique constraint too, since a database with duplicate such entries would be corrupted. We do this via the standard Django OneToOneField. --- .../0378_alter_realmuserdefault_realm.py | 21 +++++++++++++++++++ zerver/models.py | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 zerver/migrations/0378_alter_realmuserdefault_realm.py diff --git a/zerver/migrations/0378_alter_realmuserdefault_realm.py b/zerver/migrations/0378_alter_realmuserdefault_realm.py new file mode 100644 index 0000000000..8b0c9cb546 --- /dev/null +++ b/zerver/migrations/0378_alter_realmuserdefault_realm.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.12 on 2022-03-05 02:59 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("zerver", "0377_message_edit_history_format"), + ] + + operations = [ + migrations.AlterField( + model_name="realmuserdefault", + name="realm", + field=models.OneToOneField( + on_delete=django.db.models.deletion.CASCADE, to="zerver.realm" + ), + ), + ] diff --git a/zerver/models.py b/zerver/models.py index cc841f570f..6eb709975a 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -1604,7 +1604,7 @@ class RealmUserDefault(UserBaseSettings): """ id: int = models.AutoField(auto_created=True, primary_key=True, verbose_name="ID") - realm: Realm = models.ForeignKey(Realm, on_delete=CASCADE) + realm: Realm = models.OneToOneField(Realm, on_delete=CASCADE) class UserProfile(AbstractBaseUser, PermissionsMixin, UserBaseSettings):