Skip to content

Commit 3446276

Browse files
committed
fix: SQLite 兼容性修复
- 数据库引擎根据类型动态配置连接池参数 - SQLite 不使用 pool_size/max_overflow/pool_pre_ping
1 parent e26d89b commit 3446276

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

apps/api/app/db/session.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
from app.core.config import settings
77

88
# 创建异步引擎
9-
engine = create_async_engine(
10-
str(settings.DATABASE_URL),
11-
echo=settings.DEBUG,
12-
pool_pre_ping=True,
13-
pool_size=10,
14-
max_overflow=20,
15-
)
9+
# SQLite 不支持连接池参数
10+
_db_url = str(settings.DATABASE_URL)
11+
_engine_kwargs: dict = {"echo": settings.DEBUG}
12+
if not _db_url.startswith("sqlite"):
13+
_engine_kwargs["pool_pre_ping"] = True
14+
_engine_kwargs["pool_size"] = 10
15+
_engine_kwargs["max_overflow"] = 20
16+
17+
engine = create_async_engine(_db_url, **_engine_kwargs)
1618

1719
# 创建异步会话工厂
1820
AsyncSessionLocal = async_sessionmaker(

0 commit comments

Comments
 (0)