From 17839f6a25c9ca078aaf3f869d1a9ef2782309d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Thu, 21 Mar 2024 09:59:17 +0100 Subject: [PATCH] feat: add database debug env var (#2333) * feat: add database debug env var makes it visible what db actions happen --- .env.example | 1 + lnbits/app.py | 6 ++++++ lnbits/db.py | 4 +++- lnbits/settings.py | 1 + 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 59b5ac6aa..990108e02 100644 --- a/.env.example +++ b/.env.example @@ -226,6 +226,7 @@ LNBITS_RESERVE_FEE_PERCENT=1.0 ###################################### DEBUG=false +DEBUG_DATABASE=false BUNDLE_ASSETS=true # logging into LNBITS_DATA_FOLDER/logs/ diff --git a/lnbits/app.py b/lnbits/app.py index 4df9f2959..c3a6dc989 100644 --- a/lnbits/app.py +++ b/lnbits/app.py @@ -579,6 +579,12 @@ def configure_logger() -> None: logging.getLogger("uvicorn.error").handlers = [InterceptHandler()] logging.getLogger("uvicorn.error").propagate = False + logging.getLogger("sqlalchemy").handlers = [InterceptHandler()] + logging.getLogger("sqlalchemy.engine.base").handlers = [InterceptHandler()] + logging.getLogger("sqlalchemy.engine.base").propagate = False + logging.getLogger("sqlalchemy.engine.base.Engine").handlers = [InterceptHandler()] + logging.getLogger("sqlalchemy.engine.base.Engine").propagate = False + class Formatter: def __init__(self): diff --git a/lnbits/db.py b/lnbits/db.py index 2fed0bf62..a6fdde7e2 100644 --- a/lnbits/db.py +++ b/lnbits/db.py @@ -254,7 +254,9 @@ class Database(Compat): else: self.schema = None - self.engine = create_engine(database_uri, strategy=ASYNCIO_STRATEGY) + self.engine = create_engine( + database_uri, strategy=ASYNCIO_STRATEGY, echo=settings.debug_database + ) self.lock = asyncio.Lock() logger.trace(f"database {self.type} added for {self.name}") diff --git a/lnbits/settings.py b/lnbits/settings.py index b977904a5..21a3cb912 100644 --- a/lnbits/settings.py +++ b/lnbits/settings.py @@ -358,6 +358,7 @@ class UpdateSettings(EditableSettings): class EnvSettings(LNbitsSettings): debug: bool = Field(default=False) + debug_database: bool = Field(default=False) bundle_assets: bool = Field(default=True) host: str = Field(default="127.0.0.1") port: int = Field(default=5000)