From 4362e8527e888ccb93cf3b5ab12e99eb099d91d3 Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Tue, 5 Aug 2025 09:20:32 -0600 Subject: [PATCH] Allow externally initialized DB for FastAPI app lifespan. --- passkey/fastapi/mainapp.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/passkey/fastapi/mainapp.py b/passkey/fastapi/mainapp.py index a799c43..afd86cb 100644 --- a/passkey/fastapi/mainapp.py +++ b/passkey/fastapi/mainapp.py @@ -9,6 +9,7 @@ from fastapi.responses import ( from fastapi.staticfiles import StaticFiles from ..authsession import get_session +from ..db import db from . import ws from .api import register_api_routes from .reset import register_reset_routes @@ -18,9 +19,14 @@ STATIC_DIR = Path(__file__).parent.parent / "frontend-build" @asynccontextmanager async def lifespan(app: FastAPI): - from ..db import sql + # Test if we have a database already initialized, otherwise use SQL + try: + db.instance + except RuntimeError: + from ..db import sql + + await sql.init() - await sql.init() yield