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