Remove useless reports, avoid DB-Races

This commit is contained in:
2026-05-16 13:25:10 -03:00
parent b54375dbb3
commit 026efec79b
9 changed files with 88 additions and 74 deletions
+19 -2
View File
@@ -4,7 +4,7 @@ from contextlib import contextmanager
from pathlib import Path
from typing import Iterator
from sqlalchemy import create_engine, text
from sqlalchemy import create_engine, event, text
from sqlalchemy.orm import DeclarativeBase, Session, sessionmaker
from app.config import get_settings
@@ -23,7 +23,24 @@ def _engine_url() -> str:
return url
engine = create_engine(_engine_url(), future=True, pool_pre_ping=True)
def _connect_args(url: str) -> dict:
if url.startswith("sqlite:"):
return {"timeout": 60}
return {}
engine_url = _engine_url()
engine = create_engine(engine_url, future=True, pool_pre_ping=True, connect_args=_connect_args(engine_url))
@event.listens_for(engine, "connect")
def _configure_sqlite(dbapi_connection, connection_record) -> None:
if engine.url.get_backend_name() != "sqlite":
return
cursor = dbapi_connection.cursor()
cursor.execute("PRAGMA busy_timeout=60000")
cursor.execute("PRAGMA journal_mode=WAL")
cursor.close()
SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False, future=True)