From bce85079bf49b3407025d63655c4a425018edafc Mon Sep 17 00:00:00 2001 From: madhavcodez Date: Tue, 14 Apr 2026 10:53:51 -0500 Subject: [PATCH] fix: pool DB connections to prevent Supabase client exhaustion Configure the SQLAlchemy engine with pool_size=5, max_overflow=5, pool_pre_ping=True, and pool_recycle=300. Without pooling, every request opened a fresh connection, causing OperationalError: too many clients under modest traffic on Supabase's shared connection cap. Closes #60 --- app/db.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/db.py b/app/db.py index 5a3f2b6..85bc2f1 100644 --- a/app/db.py +++ b/app/db.py @@ -100,4 +100,12 @@ def get_engine(database_url: str | None = None) -> Engine: if not db_url: raise RuntimeError("DATABASE_URL is not set") - return create_engine(db_url, future=True) + # Pool connections to avoid exhausting max_clients on frequent requests + return create_engine( + db_url, + future=True, + pool_size=5, + max_overflow=5, + pool_pre_ping=True, + pool_recycle=300, + )