Replace unique_together with UniqueConstraints

This commit is contained in:
jeremystretch
2022-09-27 15:35:24 -04:00
parent ec6457bcd3
commit f51415cf2c
20 changed files with 630 additions and 142 deletions

View File

@@ -1,5 +1,3 @@
# Generated by Django 4.1.1 on 2022-09-14 20:57
from django.db import migrations, models
@@ -10,10 +8,26 @@ class Migration(migrations.Migration):
]
operations = [
migrations.AlterUniqueTogether(
name='cluster',
unique_together=set(),
),
migrations.AlterUniqueTogether(
name='virtualmachine',
unique_together=set(),
),
migrations.AlterUniqueTogether(
name='vminterface',
unique_together=set(),
),
migrations.AddConstraint(
model_name='cluster',
constraint=models.UniqueConstraint(fields=('group', 'name'), name='virtualization_cluster_unique_group_name'),
),
migrations.AddConstraint(
model_name='cluster',
constraint=models.UniqueConstraint(fields=('site', 'name'), name='virtualization_cluster_unique_site_name'),
),
migrations.AddConstraint(
model_name='virtualmachine',
constraint=models.UniqueConstraint(fields=('name', 'cluster', 'tenant'), name='virtualization_virtualmachine_unique_name_cluster_tenant'),
@@ -22,4 +36,8 @@ class Migration(migrations.Migration):
model_name='virtualmachine',
constraint=models.UniqueConstraint(condition=models.Q(('tenant__isnull', True)), fields=('name', 'cluster'), name='virtualization_virtualmachine_unique_name_cluster', violation_error_message='Virtual machine name must be unique per site.'),
),
migrations.AddConstraint(
model_name='vminterface',
constraint=models.UniqueConstraint(fields=('virtual_machine', 'name'), name='virtualization_vminterface_unique_virtual_machine_name'),
),
]

View File

@@ -160,9 +160,15 @@ class Cluster(NetBoxModel):
class Meta:
ordering = ['name']
unique_together = (
('group', 'name'),
('site', 'name'),
constraints = (
models.UniqueConstraint(
fields=('group', 'name'),
name='%(app_label)s_%(class)s_unique_group_name'
),
models.UniqueConstraint(
fields=('site', 'name'),
name='%(app_label)s_%(class)s_unique_site_name'
),
)
def __str__(self):
@@ -461,9 +467,14 @@ class VMInterface(NetBoxModel, BaseInterface):
)
class Meta:
verbose_name = 'interface'
ordering = ('virtual_machine', CollateAsChar('_name'))
unique_together = ('virtual_machine', 'name')
constraints = (
models.UniqueConstraint(
fields=('virtual_machine', 'name'),
name='%(app_label)s_%(class)s_unique_virtual_machine_name'
),
)
verbose_name = 'interface'
def __str__(self):
return self.name