Skip to content

Commit 2a0d4c3

Browse files
fix(db): fix NullPool incompatibility with pool_size/max_overflow
NullPool doesn't support pool_size and max_overflow arguments. Passing None is not the same as omitting the argument entirely. Build engine kwargs conditionally to avoid the TypeError. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 72edcdb commit 2a0d4c3

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

core/database/connection.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,18 @@ def _create_direct_engine():
8383
# Use NullPool for testing to avoid connection issues
8484
poolclass = NullPool if ENVIRONMENT == "test" else None
8585

86-
engine = create_async_engine(
87-
url,
88-
poolclass=poolclass,
89-
pool_size=5 if not poolclass else None,
90-
max_overflow=10 if not poolclass else None,
91-
pool_pre_ping=True if not poolclass else False,
92-
echo=ENVIRONMENT == "development",
93-
)
86+
# Build engine kwargs - NullPool doesn't support pool_size/max_overflow
87+
engine_kwargs = {
88+
"echo": ENVIRONMENT == "development",
89+
}
90+
if poolclass:
91+
engine_kwargs["poolclass"] = poolclass
92+
else:
93+
engine_kwargs["pool_size"] = 5
94+
engine_kwargs["max_overflow"] = 10
95+
engine_kwargs["pool_pre_ping"] = True
96+
97+
engine = create_async_engine(url, **engine_kwargs)
9498

9599
# Log without exposing password
96100
safe_url = url.split("@")[-1] if "@" in url else "local"

0 commit comments

Comments
 (0)