fix: arranque resiliente (crea tablas con reintentos; no tumba /health si la BD tarda)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-07-01 19:42:24 +02:00
parent 150a323a37
commit 461a1c8a8c

22
main.py
View File

@@ -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=["*"],