6347 migrate initial counts

This commit is contained in:
Arthur 2023-05-16 13:50:26 -07:00
parent acb58f0a31
commit c955528416

View File

@ -4,6 +4,22 @@ from django.db import migrations
import utilities.fields import utilities.fields
def populate_device_counts(apps, schema_editor):
Device = apps.get_model('dcim', 'Device')
for device in Device.objects.all():
device._console_port_count = device.console.ports.count()
device._console_server_port_count = device.consoleserverports.count()
device._interface_count = device.interfaces.count()
device._front_port_count = device.frontports.count()
device._rear_port_count = device.rearports.count()
device._device_bay_count = device.devicebays.count()
device._inventory_item_count = device.inventoryitems.count()
device._power_port_count = device.powerports.count()
device._power_outlet_count = device.poweroutlets.count()
device.save()
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('dcim', '0173_remove_napalm_fields'), ('dcim', '0173_remove_napalm_fields'),
@ -55,4 +71,8 @@ class Migration(migrations.Migration):
name='_rear_port_count', name='_rear_port_count',
field=utilities.fields.CounterCacheField(default=0), field=utilities.fields.CounterCacheField(default=0),
), ),
migrations.RunPython(
code=populate_device_counts,
reverse_code=migrations.RunPython.noop
),
] ]