fix: 修复 SQLite 连接复用导致数据库不可用

This commit is contained in:
meijiali
2026-07-06 15:18:58 +08:00
parent 1d24cbf841
commit 918dd62e21
2 changed files with 14 additions and 1 deletions
+5 -1
View File
@@ -5,6 +5,7 @@ from datetime import UTC, datetime
from sqlalchemy import Engine, create_engine, event
from sqlalchemy.orm import DeclarativeBase, Session, sessionmaker
from sqlalchemy.pool import NullPool
from app.config import get_settings
@@ -20,7 +21,10 @@ def create_sqlite_engine(database_url: str):
db_path.parent.mkdir(parents=True, exist_ok=True)
connect_args = {"check_same_thread": False, "timeout": 10}
engine = create_engine(database_url, connect_args=connect_args)
engine_kwargs = {"connect_args": connect_args}
if database_url.startswith("sqlite:///") and database_url != "sqlite:///:memory:":
engine_kwargs["poolclass"] = NullPool
engine = create_engine(database_url, **engine_kwargs)
engine.dialect.connect_args = connect_args
@event.listens_for(engine, "connect")