|
|
@@ -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."
|
|
|
)
|
|
|
|
|
|
|