Files
igny8/backend/fix_integration_site_url.py
alorig 3d3ac0647e 1
2025-11-22 12:29:01 +05:00

77 lines
2.6 KiB
Python

#!/usr/bin/env python
"""
Fix missing site_url in integration config
Adds site_url to config_json from site.domain or site.wp_url
"""
import os
import sys
import django
# Setup Django environment
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'igny8_core.settings')
django.setup()
from igny8_core.business.integration.models import SiteIntegration
from igny8_core.auth.models import Site
def fix_integration_site_urls():
"""Add site_url to integration config if missing"""
integrations = SiteIntegration.objects.filter(platform='wordpress')
fixed_count = 0
skipped_count = 0
error_count = 0
for integration in integrations:
try:
config = integration.config_json or {}
# Check if site_url is already set
if config.get('site_url'):
print(f"✓ Integration {integration.id} already has site_url: {config.get('site_url')}")
skipped_count += 1
continue
# Try to get site URL from multiple sources
site_url = None
# First, try legacy wp_url
if integration.site.wp_url:
site_url = integration.site.wp_url
print(f"→ Using legacy wp_url for integration {integration.id}: {site_url}")
# Fallback to domain
elif integration.site.domain:
site_url = integration.site.domain
print(f"→ Using domain for integration {integration.id}: {site_url}")
if site_url:
# Update config
config['site_url'] = site_url
integration.config_json = config
integration.save(update_fields=['config_json'])
print(f"✓ Updated integration {integration.id} with site_url: {site_url}")
fixed_count += 1
else:
print(f"✗ Integration {integration.id} has no site URL available (site: {integration.site.name}, id: {integration.site.id})")
error_count += 1
except Exception as e:
print(f"✗ Error fixing integration {integration.id}: {e}")
error_count += 1
print("\n" + "="*60)
print(f"Summary:")
print(f" Fixed: {fixed_count}")
print(f" Skipped (already set): {skipped_count}")
print(f" Errors: {error_count}")
print("="*60)
if __name__ == '__main__':
print("Fixing WordPress integration site URLs...")
print("="*60)
fix_integration_site_urls()