From afe80a9e789b540aafe42241dae71910ad38fdaf Mon Sep 17 00:00:00 2001 From: catborise Date: Fri, 6 Nov 2026 11:01:58 +0300 Subject: [PATCH] refactor(accounts): UserInstance's uniqueness is a UniqueConstraint Django documents unique_together as likely to be deprecated in favour of Meta.constraints; the rule is the same (one row per user and VM). --- .../0012_user_instance_constraint.py | 24 +++++++++++++++++++ accounts/models.py | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 accounts/migrations/0012_user_instance_constraint.py diff --git a/accounts/migrations/0012_user_instance_constraint.py b/accounts/migrations/0012_user_instance_constraint.py new file mode 100644 index 00000000..6800919c --- /dev/null +++ b/accounts/migrations/0012_user_instance_constraint.py @@ -0,0 +1,24 @@ +# Generated by Django 5.2.18 on 2026-11-06 07:57 + +from django.conf import settings +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('accounts', '0011_quota_help'), + ('instances', '0014_instancetombstone_host'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='userinstance', + unique_together=set(), + ), + migrations.AddConstraint( + model_name='userinstance', + constraint=models.UniqueConstraint(fields=('user', 'instance'), name='unique_user_instance'), + ), + ] diff --git a/accounts/models.py b/accounts/models.py index 61f7187a..07e65862 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -27,7 +27,7 @@ class UserInstance(models.Model): } class Meta: - unique_together = ["user", "instance"] + constraints = [models.UniqueConstraint(fields=["user", "instance"], name="unique_user_instance")] class UserSSHKey(models.Model):