From 461a1c8a8c299c18c0f5f1a5c973b3d6e239ee54 Mon Sep 17 00:00:00 2001 From: Carlos Narro Date: Wed, 1 Jul 2026 19:42:24 +0200 Subject: [PATCH] fix: arranque resiliente (crea tablas con reintentos; no tumba /health si la BD tarda) Co-Authored-By: Claude Opus 4.8 --- main.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index 8e687ee..24f98a0 100644 --- a/main.py +++ b/main.py @@ -13,9 +13,29 @@ import off from db import Base, engine, get_db from models import Food, Recipe -Base.metadata.create_all(bind=engine) + +def init_db(retries: int = 10): + """Crea las tablas, reintentando por si la BD tarda en levantar. No tumba + el arranque si falla: /health seguirá respondiendo.""" + import time + for _ in range(retries): + try: + Base.metadata.create_all(bind=engine) + return True + except Exception: + time.sleep(2) + return False + + +# En import: un intento best-effort (crea tablas ya para tests/SQLite). +init_db(retries=1) app = FastAPI(title="autoayuno-api") + + +@app.on_event("startup") +def _startup(): + init_db() app.add_middleware( CORSMiddleware, allow_origins=["*"],