Big-Link-Man/scripts/delete_sites.py

51 lines
1.5 KiB
Python

"""
Delete specific sites from database by ID
"""
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
from src.database.session import db_manager
from src.database.repositories import SiteDeploymentRepository
def delete_sites(site_ids):
"""Delete sites by their IDs"""
db_manager.initialize()
session = db_manager.get_session()
site_repo = SiteDeploymentRepository(session)
try:
deleted_count = 0
for site_id in site_ids:
# Get site info first to display what we're deleting
site = site_repo.get_by_id(site_id)
if site:
hostname = site.custom_hostname or site.pull_zone_bcdn_hostname
print(f"Deleting site {site_id}: {site.site_name} ({hostname})")
else:
print(f"Site {site_id}: Not found in database")
# Delete directly - the delete method handles not-found cases
if site_repo.delete(site_id):
print(f" [OK] Deleted site {site_id}")
deleted_count += 1
else:
print(f" [SKIP] Site {site_id} was not found or already deleted")
print(f"\nDeleted {deleted_count}/{len(site_ids)} site(s)")
except Exception as e:
print(f"Error deleting sites: {e}")
import traceback
traceback.print_exc()
session.rollback()
finally:
session.close()
if __name__ == "__main__":
site_ids = [568, 569, 570]
delete_sites(site_ids)