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

Implement bypass for migration safeguard

This commit is contained in:
jeremystretch
2022-04-05 14:10:35 -04:00
parent 8b92bc6c4a
commit 66464fd807
2 changed files with 16 additions and 4 deletions

View File

@@ -1,3 +1,5 @@
import os
from django.db import migrations
from django.db.utils import DataError
@@ -8,18 +10,22 @@ def check_legacy_data(apps, schema_editor):
"""
Site = apps.get_model('dcim', 'Site')
if site_count := Site.objects.exclude(asn__isnull=True).count():
site_count = Site.objects.exclude(asn__isnull=True).count()
if site_count and 'NETBOX_DELETE_LEGACY_DATA' not in os.environ:
raise DataError(
f"Unable to proceed with deleting asn field from Site model: Found {site_count} sites with "
f"legacy ASN data. Please ensure all legacy site ASN data has been migrated to ASN objects "
f"before proceeding."
f"before proceeding. Or, set the NETBOX_DELETE_LEGACY_DATA environment variable to bypass "
f"this safeguard and delete all legacy site ASN data."
)
if site_count := Site.objects.exclude(contact_name='', contact_phone='', contact_email='').count():
site_count = Site.objects.exclude(contact_name='', contact_phone='', contact_email='').count()
if site_count and 'NETBOX_DELETE_LEGACY_DATA' not in os.environ:
raise DataError(
f"Unable to proceed with deleting contact fields from Site model: Found {site_count} sites "
f"with legacy contact data. Please ensure all legacy site contact data has been migrated to "
f"contact objects before proceeding."
f"contact objects before proceeding. Or, set the NETBOX_DELETE_LEGACY_DATA environment "
f"variable to bypass this safeguard and delete all legacy site contact data."
)