1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Closes #14436: Add indexes for all GenericForeignKey fields (#14463)

* Closes #14436: Add PostgreSQL indexes for all GenericForeignKeys

* Add note about GFK indexes to developer docs
This commit is contained in:
Jeremy Stretch
2023-12-07 14:02:51 -05:00
committed by GitHub
parent 2d1f882724
commit b532435a6d
22 changed files with 208 additions and 15 deletions

View File

@@ -0,0 +1,25 @@
# Generated by Django 4.2.7 on 2023-12-07 16:09
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('dcim', '0183_protect_child_interfaces'),
]
operations = [
migrations.AddIndex(
model_name='cabletermination',
index=models.Index(fields=['termination_type', 'termination_id'], name='dcim_cablet_termina_884752_idx'),
),
migrations.AddIndex(
model_name='inventoryitem',
index=models.Index(fields=['component_type', 'component_id'], name='dcim_invent_compone_0560bb_idx'),
),
migrations.AddIndex(
model_name='inventoryitemtemplate',
index=models.Index(fields=['component_type', 'component_id'], name='dcim_invent_compone_77b5f8_idx'),
),
]

View File

@@ -298,6 +298,9 @@ class CableTermination(ChangeLoggedModel):
class Meta:
ordering = ('cable', 'cable_end', 'pk')
indexes = (
models.Index(fields=('termination_type', 'termination_id')),
)
constraints = (
models.UniqueConstraint(
fields=('termination_type', 'termination_id'),

View File

@@ -749,6 +749,9 @@ class InventoryItemTemplate(MPTTModel, ComponentTemplateModel):
class Meta:
ordering = ('device_type__id', 'parent__id', '_name')
indexes = (
models.Index(fields=('component_type', 'component_id')),
)
constraints = (
models.UniqueConstraint(
fields=('device_type', 'parent', 'name'),

View File

@@ -1250,6 +1250,9 @@ class InventoryItem(MPTTModel, ComponentModel, TrackingModelMixin):
class Meta:
ordering = ('device__id', 'parent__id', '_name')
indexes = (
models.Index(fields=('component_type', 'component_id')),
)
constraints = (
models.UniqueConstraint(
fields=('device', 'parent', 'name'),