fix: kein WAL mehr, damit die read-only Web-App die DB öffnen kann
Eine readonly-Verbindung (web-Container) kann eine WAL-Datenbank ohne aktiven Writer/-shm nicht öffnen -> "attempt to write a readonly database", die Seite blieb leer. Da collector (Writer) und web (Reader) getrennte Prozesse sind und der collector keine Dauerverbindung hält, existiert im Ruhezustand kein -shm. - collector/db.py + schema.sql: WAL entfernt (Rollback-Journal als Default); readonly-Reads sind damit jederzeit möglich. - web/lib/db.ts: busy_timeout=5s, falls gerade geschrieben wird. Bestehende DB einmalig umstellen: PRAGMA journal_mode=DELETE; Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -17,7 +17,10 @@ def connect() -> sqlite3.Connection:
|
||||
Path(path).parent.mkdir(parents=True, exist_ok=True)
|
||||
conn = sqlite3.connect(path)
|
||||
conn.row_factory = sqlite3.Row
|
||||
conn.execute("PRAGMA journal_mode=WAL;")
|
||||
# Bewusst KEIN WAL: Der web-Container liest die DB read-only aus einem
|
||||
# anderen Prozess. Eine readonly-Verbindung kann eine WAL-Datenbank ohne
|
||||
# aktiven Writer/-shm nicht öffnen ("attempt to write a readonly database").
|
||||
# Rollback-Journal (Default) lässt readonly-Reads jederzeit zu.
|
||||
return conn
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
PRAGMA journal_mode=WAL;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS charges (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
start_time TEXT NOT NULL, -- ISO 8601, lokale Zeit (Europe/Berlin)
|
||||
|
||||
Reference in New Issue
Block a user