From 4eed77bfa7d63f6230248eefcdf1d5412591a1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Sp=C3=B6ttel?= <1682504+fspoettel@users.noreply.github.com> Date: Tue, 28 Feb 2023 20:20:51 +0100 Subject: [PATCH] fix: enable sqlite WAL --- .gitignore | 2 +- app/shared/db/base.py | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f46baa8..041efec 100644 --- a/.gitignore +++ b/.gitignore @@ -163,4 +163,4 @@ cython_debug/ .vscode .DS_Store -whisperbox.sqlite +whisperbox.sqlite* diff --git a/app/shared/db/base.py b/app/shared/db/base.py index 5a7f28c..2c732df 100644 --- a/app/shared/db/base.py +++ b/app/shared/db/base.py @@ -1,12 +1,21 @@ -from typing import Generator +from typing import Any, Generator -from sqlalchemy import create_engine +from sqlalchemy.engine import Connection +from sqlalchemy import create_engine, event from sqlalchemy.orm import Session, sessionmaker from app.shared.settings import settings engine = create_engine(settings.DATABASE_URI, connect_args={"check_same_thread": False}) + +@event.listens_for(engine, "connect") +def set_sqlite_pragma(conn: Connection, _: Any) -> None: + cursor = conn.cursor() + cursor.execute("PRAGMA journal_mode=WAL") + cursor.close() + + SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)