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

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
 * [#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
 * [#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
 * [#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
 ### 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.constants import *
 from dcim.fields import PathField
 from dcim.fields import PathField
 from dcim.utils import decompile_path_node, object_to_path_node, path_node_to_object
 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.fields import ColorField
 from utilities.utils import to_meters
 from utilities.utils import to_meters
 from .devices import Device
 from .devices import Device
@@ -298,7 +298,7 @@ class Cable(PrimaryModel):
         return COMPATIBLE_TERMINATION_TYPES[self.termination_a._meta.model_name]
         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
     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
     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 django.urls import reverse
 
 
 from extras.choices import *
 from extras.choices import *
-from netbox.models import BigIDModel
 from utilities.querysets import RestrictedQuerySet
 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
     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
     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.constants import *
 from extras.conditions import ConditionSet
 from extras.conditions import ConditionSet
 from extras.utils import FeatureQuery, image_upload
 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 netbox.models.features import ExportTemplatesMixin, JobResultsMixin, WebhooksMixin
 from utilities.querysets import RestrictedQuerySet
 from utilities.querysets import RestrictedQuerySet
 from utilities.utils import render_jinja2
 from utilities.utils import render_jinja2
@@ -467,7 +467,7 @@ class JournalEntry(WebhooksMixin, ChangeLoggedModel):
         return JournalEntryKindChoices.colors.get(self.kind)
         return JournalEntryKindChoices.colors.get(self.kind)
 
 
 
 
-class JobResult(BigIDModel):
+class JobResult(models.Model):
     """
     """
     This model stores the results from running a user-defined report.
     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 django.utils.text import slugify
 from taggit.models import TagBase, GenericTaggedItemBase
 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 netbox.models.features import ExportTemplatesMixin, WebhooksMixin
 from utilities.choices import ColorChoices
 from utilities.choices import ColorChoices
 from utilities.fields import ColorField
 from utilities.fields import ColorField
@@ -36,7 +36,7 @@ class Tag(ExportTemplatesMixin, WebhooksMixin, ChangeLoggedModel, TagBase):
         return slug
         return slug
 
 
 
 
-class TaggedItem(BigIDModel, GenericTaggedItemBase):
+class TaggedItem(GenericTaggedItemBase):
     tag = models.ForeignKey(
     tag = models.ForeignKey(
         to=Tag,
         to=Tag,
         related_name="%(app_label)s_%(class)s_items",
         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 *
 from netbox.models.features import *
 
 
 __all__ = (
 __all__ = (
-    'BigIDModel',
     'ChangeLoggedModel',
     'ChangeLoggedModel',
     'NestedGroupModel',
     'NestedGroupModel',
     'OrganizationalModel',
     'OrganizationalModel',
@@ -26,7 +25,7 @@ class BaseModel(
     ExportTemplatesMixin,
     ExportTemplatesMixin,
     JournalingMixin,
     JournalingMixin,
     TagsMixin,
     TagsMixin,
-    WebhooksMixin,
+    WebhooksMixin
 ):
 ):
     class Meta:
     class Meta:
         abstract = True
         abstract = True
@@ -44,7 +43,7 @@ class BigIDModel(models.Model):
         abstract = True
         abstract = True
 
 
 
 
-class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, BigIDModel):
+class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, models.Model):
     """
     """
     Base model for all objects which support change logging.
     Base model for all objects which support change logging.
     """
     """
@@ -54,7 +53,7 @@ class ChangeLoggedModel(ChangeLoggingMixin, CustomValidationMixin, BigIDModel):
         abstract = True
         abstract = True
 
 
 
 
-class PrimaryModel(BaseModel, ChangeLoggingMixin, BigIDModel):
+class PrimaryModel(BaseModel, ChangeLoggingMixin, models.Model):
     """
     """
     Primary models represent real objects within the infrastructure being modeled.
     Primary models represent real objects within the infrastructure being modeled.
     """
     """
@@ -64,7 +63,7 @@ class PrimaryModel(BaseModel, ChangeLoggingMixin, BigIDModel):
         abstract = True
         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
     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.
     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
     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
     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
 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
 # 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.
 # 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 django.utils import timezone
 
 
 from netbox.config import get_config
 from netbox.config import get_config
-from netbox.models import BigIDModel
 from utilities.querysets import RestrictedQuerySet
 from utilities.querysets import RestrictedQuerySet
 from utilities.utils import flatten_dict
 from utilities.utils import flatten_dict
 from .constants import *
 from .constants import *
@@ -187,7 +186,7 @@ def create_userconfig(instance, created, **kwargs):
 # REST API
 # 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.
     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.
     It also supports setting an expiration time and toggling write ability.
@@ -246,7 +245,7 @@ class Token(BigIDModel):
 # Permissions
 # 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
     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.
     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.choices import LinkStatusChoices
 from dcim.constants import WIRELESS_IFACE_TYPES
 from dcim.constants import WIRELESS_IFACE_TYPES
-from netbox.models import BigIDModel, NestedGroupModel, PrimaryModel
+from netbox.models import NestedGroupModel, PrimaryModel
 from .choices import *
 from .choices import *
 from .constants import *
 from .constants import *