Просмотр исходного кода

Closes #8454: Set DEFAULT_AUTO_FIELD to BigAutoField

jeremystretch 4 лет назад
Родитель
Сommit
e4abbfb2c6

+ 1 - 0
docs/release-notes/version-3.2.md

@@ -81,6 +81,7 @@ Inventory item templates can be arranged hierarchically within a device type, an
 * [#7743](https://github.com/netbox-community/netbox/issues/7743) - Remove legacy ASN field from site model
 * [#7748](https://github.com/netbox-community/netbox/issues/7748) - Remove legacy contact fields from site model
 * [#8031](https://github.com/netbox-community/netbox/issues/8031) - Remove automatic redirection of legacy slug-based URLs
+* [#8195](https://github.com/netbox-community/netbox/issues/8195), [#8454](https://github.com/netbox-community/netbox/issues/8454) - Use 64-bit integers for all primary keys
 
 ### REST API Changes
 

+ 0 - 18
netbox/circuits/migrations/0033_gfk_bigidfield.py

@@ -1,18 +0,0 @@
-# Generated by Django 3.2.11 on 2022-01-24 21:00
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('circuits', '0032_provider_service_id'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='circuittermination',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-    ]

+ 44 - 0
netbox/circuits/migrations/0033_standardize_id_fields.py

@@ -0,0 +1,44 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('circuits', '0032_provider_service_id'),
+    ]
+
+    operations = [
+        # Model IDs
+        migrations.AlterField(
+            model_name='circuit',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='circuittype',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='provider',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='providernetwork',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+
+        # GFK IDs
+        migrations.AlterField(
+            model_name='circuittermination',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+    ]

+ 0 - 73
netbox/dcim/migrations/0151_gfk_bigidfield.py

@@ -1,73 +0,0 @@
-# Generated by Django 3.2.11 on 2022-01-24 21:00
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('dcim', '0150_interface_speed_duplex'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='cable',
-            name='termination_a_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='cable',
-            name='termination_b_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='cablepath',
-            name='destination_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='cablepath',
-            name='origin_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='consoleport',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='consoleserverport',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='frontport',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='interface',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='powerfeed',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='poweroutlet',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='powerport',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-        migrations.AlterField(
-            model_name='rearport',
-            name='_link_peer_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-    ]

+ 274 - 0
netbox/dcim/migrations/0151_standardize_id_fields.py

@@ -0,0 +1,274 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('dcim', '0150_interface_speed_duplex'),
+    ]
+
+    operations = [
+        # Model IDs
+        migrations.AlterField(
+            model_name='cable',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='cablepath',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='consoleport',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='consoleporttemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='consoleserverport',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='consoleserverporttemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='device',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='devicebay',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='devicebaytemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='devicerole',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='devicetype',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='frontport',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='frontporttemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='interface',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='interfacetemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitem',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitemrole',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='inventoryitemtemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='location',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='manufacturer',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='module',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='modulebay',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='modulebaytemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='moduletype',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='platform',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='powerfeed',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='poweroutlet',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='poweroutlettemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='powerpanel',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='powerport',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='powerporttemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='rack',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='rackreservation',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='rackrole',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='rearport',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='rearporttemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='region',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='site',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='sitegroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='virtualchassis',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+
+        # GFK IDs
+        migrations.AlterField(
+            model_name='cable',
+            name='termination_a_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='cable',
+            name='termination_b_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='cablepath',
+            name='destination_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='cablepath',
+            name='origin_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='consoleport',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='consoleserverport',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='frontport',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='interface',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='powerfeed',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='poweroutlet',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='powerport',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+        migrations.AlterField(
+            model_name='rearport',
+            name='_link_peer_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+    ]

+ 2 - 2
netbox/dcim/models/cables.py

@@ -11,7 +11,7 @@ from dcim.choices import *
 from dcim.constants import *
 from dcim.fields import PathField
 from dcim.utils import decompile_path_node, object_to_path_node, path_node_to_object
-from netbox.models import BigIDModel, PrimaryModel
+from netbox.models import PrimaryModel
 from utilities.fields import ColorField
 from utilities.utils import to_meters
 from .devices import Device
@@ -298,7 +298,7 @@ class Cable(PrimaryModel):
         return COMPATIBLE_TERMINATION_TYPES[self.termination_a._meta.model_name]
 
 
-class CablePath(BigIDModel):
+class CablePath(models.Model):
     """
     A CablePath instance represents the physical path from an origin to a destination, including all intermediate
     elements in the path. Every instance must specify an `origin`, whereas `destination` may be null (for paths which do

+ 0 - 33
netbox/extras/migrations/0071_gfk_bigidfield.py

@@ -1,33 +0,0 @@
-# Generated by Django 3.2.11 on 2022-01-24 21:00
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('extras', '0070_customlink_enabled'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='imageattachment',
-            name='object_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='journalentry',
-            name='assigned_object_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='objectchange',
-            name='changed_object_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='objectchange',
-            name='related_object_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-    ]

+ 94 - 0
netbox/extras/migrations/0071_standardize_id_fields.py

@@ -0,0 +1,94 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('extras', '0070_customlink_enabled'),
+    ]
+
+    operations = [
+        # Model IDs
+        migrations.AlterField(
+            model_name='configcontext',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='configrevision',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='customfield',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='customlink',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='exporttemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='imageattachment',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='jobresult',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='journalentry',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='objectchange',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='tag',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='taggeditem',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='webhook',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+
+        # GFK IDs
+        migrations.AlterField(
+            model_name='imageattachment',
+            name='object_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='journalentry',
+            name='assigned_object_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='objectchange',
+            name='changed_object_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='objectchange',
+            name='related_object_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+    ]

+ 1 - 2
netbox/extras/models/change_logging.py

@@ -5,11 +5,10 @@ from django.db import models
 from django.urls import reverse
 
 from extras.choices import *
-from netbox.models import BigIDModel
 from utilities.querysets import RestrictedQuerySet
 
 
-class ObjectChange(BigIDModel):
+class ObjectChange(models.Model):
     """
     Record a change to an object and the user account associated with that change. A change record may optionally
     indicate an object related to the one being changed. For example, a change to an interface may also indicate the

+ 2 - 2
netbox/extras/models/models.py

@@ -18,7 +18,7 @@ from extras.choices import *
 from extras.constants import *
 from extras.conditions import ConditionSet
 from extras.utils import FeatureQuery, image_upload
-from netbox.models import BigIDModel, ChangeLoggedModel
+from netbox.models import ChangeLoggedModel
 from netbox.models.features import ExportTemplatesMixin, JobResultsMixin, WebhooksMixin
 from utilities.querysets import RestrictedQuerySet
 from utilities.utils import render_jinja2
@@ -467,7 +467,7 @@ class JournalEntry(WebhooksMixin, ChangeLoggedModel):
         return JournalEntryKindChoices.colors.get(self.kind)
 
 
-class JobResult(BigIDModel):
+class JobResult(models.Model):
     """
     This model stores the results from running a user-defined report.
     """

+ 2 - 2
netbox/extras/models/tags.py

@@ -3,7 +3,7 @@ from django.urls import reverse
 from django.utils.text import slugify
 from taggit.models import TagBase, GenericTaggedItemBase
 
-from netbox.models import BigIDModel, ChangeLoggedModel
+from netbox.models import ChangeLoggedModel
 from netbox.models.features import ExportTemplatesMixin, WebhooksMixin
 from utilities.choices import ColorChoices
 from utilities.fields import ColorField
@@ -36,7 +36,7 @@ class Tag(ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel, TagBase):
         return slug
 
 
-class TaggedItem(BigIDModel, GenericTaggedItemBase):
+class TaggedItem(GenericTaggedItemBase):
     tag = models.ForeignKey(
         to=Tag,
         related_name="%(app_label)s_%(class)s_items",

+ 0 - 23
netbox/ipam/migrations/0056_gfk_bigidfield.py

@@ -1,23 +0,0 @@
-# Generated by Django 3.2.11 on 2022-01-24 21:00
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('ipam', '0055_servicetemplate'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='fhrpgroupassignment',
-            name='interface_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-        migrations.AlterField(
-            model_name='ipaddress',
-            name='assigned_object_id',
-            field=models.PositiveBigIntegerField(blank=True, null=True),
-        ),
-    ]

+ 99 - 0
netbox/ipam/migrations/0056_standardize_id_fields.py

@@ -0,0 +1,99 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('ipam', '0055_servicetemplate'),
+    ]
+
+    operations = [
+        # Model IDs
+        migrations.AlterField(
+            model_name='aggregate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='asn',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='fhrpgroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='fhrpgroupassignment',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='iprange',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='prefix',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='rir',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='role',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='routetarget',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='service',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='servicetemplate',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='vlan',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='vlangroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='vrf',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+
+        # GFK IDs
+        migrations.AlterField(
+            model_name='fhrpgroupassignment',
+            name='interface_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+        migrations.AlterField(
+            model_name='ipaddress',
+            name='assigned_object_id',
+            field=models.PositiveBigIntegerField(blank=True, null=True),
+        ),
+    ]

+ 5 - 6
netbox/netbox/models/__init__.py

@@ -7,7 +7,6 @@ from utilities.querysets import RestrictedQuerySet
 from netbox.models.features import *
 
 __all__ = (
-    'BigIDModel',
     'ChangeLoggedModel',
     'NestedGroupModel',
     'OrganizationalModel',
@@ -26,7 +25,7 @@ class BaseModel(
     ExportTemplatesMixin,
     JournalingMixin,
     TagsMixin,
-    WebhooksMixin,
+    WebhooksMixin
 ):
     class Meta:
         abstract = True
@@ -44,7 +43,7 @@ class BigIDModel(models.Model):
         abstract = True
 
 
-class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, BigIDModel):
+class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, models.Model):
     """
     Base model for all objects which support change logging.
     """
@@ -54,7 +53,7 @@ class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, BigIDModel):
         abstract = True
 
 
-class PrimaryModel(BaseModel, ChangeLoggingMixin, BigIDModel):
+class PrimaryModel(BaseModel, ChangeLoggingMixin, models.Model):
     """
     Primary models represent real objects within the infrastructure being modeled.
     """
@@ -64,7 +63,7 @@ class PrimaryModel(BaseModel, ChangeLoggingMixin, BigIDModel):
         abstract = True
 
 
-class NestedGroupModel(BaseModel, ChangeLoggingMixin, BigIDModel, MPTTModel):
+class NestedGroupModel(BaseModel, ChangeLoggingMixin, MPTTModel):
     """
     Base model for objects which are used to form a hierarchy (regions, locations, etc.). These models nest
     recursively using MPTT. Within each parent, each child instance must have a unique name.
@@ -106,7 +105,7 @@ class NestedGroupModel(BaseModel, ChangeLoggingMixin, BigIDModel, MPTTModel):
             })
 
 
-class OrganizationalModel(BaseModel, ChangeLoggingMixin, BigIDModel):
+class OrganizationalModel(BaseModel, ChangeLoggingMixin, models.Model):
     """
     Organizational models are those which are used solely to categorize and qualify other objects, and do not convey
     any real information about the infrastructure being modeled (for example, functional device roles). Organizational

+ 1 - 1
netbox/netbox/settings.py

@@ -406,7 +406,7 @@ LOGIN_REDIRECT_URL = f'/{BASE_PATH}'
 
 CSRF_TRUSTED_ORIGINS = ALLOWED_HOSTS
 
-DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
 
 # Exclude potentially sensitive models from wildcard view exemption. These may still be exempted
 # by specifying the model individually in the EXEMPT_VIEW_PERMISSIONS configuration parameter.

+ 0 - 18
netbox/tenancy/migrations/0005_gfk_bigidfield.py

@@ -1,18 +0,0 @@
-# Generated by Django 3.2.11 on 2022-01-24 21:00
-
-from django.db import migrations, models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('tenancy', '0004_extend_tag_support'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='contactassignment',
-            name='object_id',
-            field=models.PositiveBigIntegerField(),
-        ),
-    ]

+ 49 - 0
netbox/tenancy/migrations/0005_standardize_id_fields.py

@@ -0,0 +1,49 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('tenancy', '0004_extend_tag_support'),
+    ]
+
+    operations = [
+        # Model IDs
+        migrations.AlterField(
+            model_name='contact',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='contactassignment',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='contactgroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='contactrole',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='tenant',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='tenantgroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+
+        # GFK IDs
+        migrations.AlterField(
+            model_name='contactassignment',
+            name='object_id',
+            field=models.PositiveBigIntegerField(),
+        ),
+    ]

+ 26 - 0
netbox/users/migrations/0002_standardize_id_fields.py

@@ -0,0 +1,26 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0001_squashed_0011'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='objectpermission',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='token',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='userconfig',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+    ]

+ 2 - 3
netbox/users/models.py

@@ -11,7 +11,6 @@ from django.dispatch import receiver
 from django.utils import timezone
 
 from netbox.config import get_config
-from netbox.models import BigIDModel
 from utilities.querysets import RestrictedQuerySet
 from utilities.utils import flatten_dict
 from .constants import *
@@ -187,7 +186,7 @@ def create_userconfig(instance, created, **kwargs):
 # REST API
 #
 
-class Token(BigIDModel):
+class Token(models.Model):
     """
     An API token used for user authentication. This extends the stock model to allow each user to have multiple tokens.
     It also supports setting an expiration time and toggling write ability.
@@ -246,7 +245,7 @@ class Token(BigIDModel):
 # Permissions
 #
 
-class ObjectPermission(BigIDModel):
+class ObjectPermission(models.Model):
     """
     A mapping of view, add, change, and/or delete permission for users and/or groups to an arbitrary set of objects
     identified by ORM query parameters.

+ 36 - 0
netbox/virtualization/migrations/0027_standardize_id_fields.py

@@ -0,0 +1,36 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('virtualization', '0026_vminterface_bridge'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='cluster',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='clustergroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='clustertype',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='virtualmachine',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='vminterface',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+    ]

+ 26 - 0
netbox/wireless/migrations/0002_standardize_id_fields.py

@@ -0,0 +1,26 @@
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('wireless', '0001_wireless'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='wirelesslan',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='wirelesslangroup',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+        migrations.AlterField(
+            model_name='wirelesslink',
+            name='id',
+            field=models.BigAutoField(auto_created=True, primary_key=True, serialize=False),
+        ),
+    ]

+ 1 - 1
netbox/wireless/models.py

@@ -5,7 +5,7 @@ from mptt.models import MPTTModel, TreeForeignKey
 
 from dcim.choices import LinkStatusChoices
 from dcim.constants import WIRELESS_IFACE_TYPES
-from netbox.models import BigIDModel, NestedGroupModel, PrimaryModel
+from netbox.models import NestedGroupModel, PrimaryModel
 from .choices import *
 from .constants import *