File tree Expand file tree Collapse file tree 4 files changed +14
-0
lines changed
app/resource_adapters/persistence/sqlmodel Expand file tree Collapse file tree 4 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -198,6 +198,8 @@ Temporary Items
198198
199199# SQLite database files
200200* .db
201+ * .db-shm
202+ * .db-wal
201203* .sqlite
202204* .sqlite3
203205* .sqlite-journal
Original file line number Diff line number Diff line change 11from typing import Generator
22
33from loguru import logger
4+ from sqlalchemy import text
45from sqlalchemy .engine import Engine
56from sqlmodel import Session , SQLModel , create_engine
67
@@ -25,6 +26,15 @@ def get_engine(database_url: str | None = None) -> Engine:
2526 database_url = settings .database_url
2627
2728 _engine = create_engine (database_url , echo = True )
29+
30+ # Enable WAL mode if configured
31+ if settings .sqlite_wal_mode and database_url .startswith ("sqlite" ):
32+ with _engine .connect () as conn :
33+ # https://www.sqlite.org/pragma.html
34+ conn .execute (text ("PRAGMA journal_mode=WAL" ))
35+ # conn.execute(text("PRAGMA synchronous=OFF"))
36+ logger .info ("SQLite WAL mode enabled" )
37+
2838 # Initialize database if using SQLModel
2939 if settings .execution_mode == "sqlmodel" and not settings .migrate_database :
3040 logger .info ("Creating database tables..." )
Original file line number Diff line number Diff line change @@ -39,3 +39,4 @@ class Settings:
3939 backend_cors_origins : List [AnyHttpUrl ]
4040 execution_mode : str
4141 env_smoke_test : str
42+ sqlite_wal_mode : bool = False
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ database_url = "sqlite:///./issues.db"
44migrate_database = false
55execution_mode = " sqlmodel"
66env_smoke_test = " "
7+ sqlite_wal_mode = false
78
89# CORS Settings
910backend_cors_origins = []
You can’t perform that action at this time.
0 commit comments