Skip to content

Commit c163031

Browse files
committed
feat(database): add SQLite-specific settings for in-memory use
1 parent 9ccf836 commit c163031

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

app/resource_adapters/persistence/sqlmodel/database.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from loguru import logger
44
from sqlalchemy import text
55
from sqlalchemy.engine import Engine
6+
from sqlalchemy.pool import StaticPool
67
from sqlmodel import Session, SQLModel, create_engine
78

89
from config import settings
@@ -25,7 +26,17 @@ def get_engine(database_url: str | None = None) -> Engine:
2526
if database_url is None:
2627
database_url = settings.database_url
2728

28-
_engine = create_engine(database_url, echo=True)
29+
# Configure engine based on database type
30+
engine_args = {"echo": True}
31+
32+
# Add SQLite-specific settings for in-memory database
33+
if database_url == "sqlite://":
34+
engine_args.update({
35+
"connect_args": {"check_same_thread": False},
36+
"poolclass": StaticPool
37+
})
38+
39+
_engine = create_engine(database_url, **engine_args)
2940

3041
# Enable WAL mode if configured
3142
if settings.sqlite_wal_mode and database_url.startswith("sqlite"):

0 commit comments

Comments
 (0)