Big-Link-Man/scripts/fix_orphaned_articles.py

49 lines
1.5 KiB
Python

"""
Clear site_deployment_id for articles assigned to deleted test sites
"""
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.models import GeneratedContent
def fix_orphaned_articles():
"""Clear site_deployment_id for articles assigned to deleted test sites"""
db_manager.initialize()
session = db_manager.get_session()
deleted_site_ids = [398, 399, 400, 401]
try:
orphaned = session.query(GeneratedContent).filter(
GeneratedContent.site_deployment_id.in_(deleted_site_ids)
).all()
if orphaned:
print(f"Found {len(orphaned)} articles assigned to deleted test sites:")
for article in orphaned:
print(f" Article {article.id}: '{article.title}' -> site_deployment_id={article.site_deployment_id}")
article.site_deployment_id = None
session.add(article)
session.commit()
print(f"\nCleared site_deployment_id for {len(orphaned)} articles")
print("These articles can now be reassigned during post-processing or deployment")
else:
print("No orphaned articles found.")
except Exception as e:
print(f"Error: {e}")
import traceback
traceback.print_exc()
session.rollback()
finally:
session.close()
if __name__ == "__main__":
fix_orphaned_articles()