From d4140d04b40a7ac02795021c844ac2c735f83773 Mon Sep 17 00:00:00 2001 From: Floke Date: Fri, 6 Mar 2026 14:58:22 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20[30388f42]=20Aktiviere=20WAL-Modus=20f?= =?UTF-8?q?=C3=BCr=20Company=20Explorer=20Datenbank?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Nutzt SQLAlchemy Events, um PRAGMA journal_mode=WAL beim Verbindungsaufbau zu erzwingen. - Erhöht den SQLite-Timeout auf 30 Sekunden. - Behebt die COMMIT / ROLLBACK Endlosschleife und Locking-Fehler im Company Explorer. --- company-explorer/backend/database.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/company-explorer/backend/database.py b/company-explorer/backend/database.py index 6f53466d..a78fee66 100644 --- a/company-explorer/backend/database.py +++ b/company-explorer/backend/database.py @@ -1,11 +1,22 @@ -from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime, ForeignKey, Float, Boolean, JSON +from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime, ForeignKey, Float, Boolean, JSON, event from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, relationship from datetime import datetime from .config import settings # Setup -engine = create_engine(settings.DATABASE_URL, connect_args={"check_same_thread": False}) +engine = create_engine( + settings.DATABASE_URL, + connect_args={"check_same_thread": False, "timeout": 30} +) + +# Enable WAL mode for SQLite +@event.listens_for(engine, "connect") +def set_sqlite_pragma(dbapi_connection, connection_record): + cursor = dbapi_connection.cursor() + cursor.execute("PRAGMA journal_mode=WAL") + cursor.close() + SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base()