fix: startup crash - init_db() jetzt mit Error-Handling
PROBLEM: - Backend crasht beim Start auf Prod - Login zeigt HTML statt JSON (Backend nicht erreichbar) - Ursache: init_db() wirft Exception beim Startup FIX: 1. startup_event() wrapped in try-except (non-fatal) 2. init_db() prüft ob ai_prompts Tabelle existiert 3. init_db() hat eigenen try-except 4. Bessere Fehlermeldungen in stdout ERGEBNIS: - Backend startet auch wenn init_db() fehlschlägt - Pipeline-Prompt kann manuell angelegt werden falls nötig - Login funktioniert wieder Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
c40b30737a
commit
85f48907a4
|
|
@ -43,7 +43,11 @@ AVATAR_COLORS = ['#1D9E75','#378ADD','#D85A30','#EF9F27','#7F77DD','#D4537E','#6
|
|||
@app.on_event("startup")
|
||||
async def startup_event():
|
||||
"""Run migrations and initialization on startup."""
|
||||
try:
|
||||
init_db()
|
||||
except Exception as e:
|
||||
print(f"⚠️ init_db() failed (non-fatal): {e}")
|
||||
# Don't crash on startup - pipeline prompt can be created manually
|
||||
|
||||
def init_db():
|
||||
"""Initialize database - Schema is loaded by startup.sh"""
|
||||
|
|
@ -51,8 +55,21 @@ def init_db():
|
|||
# This function kept for backwards compatibility
|
||||
|
||||
# Ensure "pipeline" master prompt exists
|
||||
try:
|
||||
with get_db() as conn:
|
||||
cur = get_cursor(conn)
|
||||
# Check if table exists first
|
||||
cur.execute("""
|
||||
SELECT EXISTS (
|
||||
SELECT FROM information_schema.tables
|
||||
WHERE table_schema = 'public'
|
||||
AND table_name = 'ai_prompts'
|
||||
) as table_exists
|
||||
""")
|
||||
if not cur.fetchone()['table_exists']:
|
||||
print("⚠️ ai_prompts table doesn't exist yet - skipping pipeline prompt creation")
|
||||
return
|
||||
|
||||
cur.execute("SELECT COUNT(*) as count FROM ai_prompts WHERE slug='pipeline'")
|
||||
if cur.fetchone()['count'] == 0:
|
||||
cur.execute("""
|
||||
|
|
@ -68,6 +85,9 @@ def init_db():
|
|||
""")
|
||||
conn.commit()
|
||||
print("✓ Pipeline master prompt created")
|
||||
except Exception as e:
|
||||
print(f"⚠️ Could not create pipeline prompt: {e}")
|
||||
# Don't fail startup - prompt can be created manually
|
||||
|
||||
# ── Helper: get profile_id from header ───────────────────────────────────────
|
||||
def get_pid(x_profile_id: Optional[str] = Header(default=None)) -> str:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user