diff --git a/backend/app.py b/backend/app.py index 6063c29c..f41e4168 100644 --- a/backend/app.py +++ b/backend/app.py @@ -568,9 +568,13 @@ async def serve_frontend(): async def startup_event(): """Initialize services on startup.""" try: - startup_report = run_startup_health_routine(app) - if startup_report.get("status") != "healthy": - logger.error(f"Startup readiness finished with failures: {startup_report.get('errors', [])}") + # Skip startup health checks in podcast-only mode to avoid unnecessary DB errors + if not is_podcast_only_demo_mode(): + startup_report = run_startup_health_routine(app) + if startup_report.get("status") != "healthy": + logger.error(f"Startup readiness finished with failures: {startup_report.get('errors', [])}") + else: + logger.info("[Podcast] Skipping startup health routine (podcast-only mode)") # Start task scheduler only if NOT in podcast-only mode if not is_podcast_only_demo_mode(): diff --git a/backend/services/database.py b/backend/services/database.py index f5ee6031..32299c1e 100644 --- a/backend/services/database.py +++ b/backend/services/database.py @@ -351,16 +351,15 @@ def init_database(): try: # Create all tables for all models using default engine - OnboardingBase.metadata.create_all(bind=default_engine) - SEOAnalysisBase.metadata.create_all(bind=default_engine) - ContentPlanningBase.metadata.create_all(bind=default_engine) - EnhancedStrategyBase.metadata.create_all(bind=default_engine) - MonitoringBase.metadata.create_all(bind=default_engine) - APIMonitoringBase.metadata.create_all(bind=default_engine) - PersonaBase.metadata.create_all(bind=default_engine) - SubscriptionBase.metadata.create_all(bind=default_engine) - UserBusinessInfoBase.metadata.create_all(bind=default_engine) - ContentAssetBase.metadata.create_all(bind=default_engine) + # Use checkfirst=True (default) to avoid errors for existing tables + from sqlalchemy import create_engine + from sqlalchemy.pool import StaticPool + + # Create tables with checkfirst=True explicitly to handle existing objects + for base in [OnboardingBase, SEOAnalysisBase, ContentPlanningBase, + EnhancedStrategyBase, MonitoringBase, APIMonitoringBase, + PersonaBase, SubscriptionBase, UserBusinessInfoBase, ContentAssetBase]: + base.metadata.create_all(bind=default_engine, checkfirst=True) logger.info("Global database initialized successfully") except SQLAlchemyError as e: logger.error(f"Error initializing global database: {str(e)}")