From 5201b6623b82c65436e1ab188b19e5a964965b4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Thu, 16 Apr 2026 21:52:25 -0400 Subject: [PATCH] fix(database): enable WAL mode and busy_timeout on every DB connection Applies WAL journal, 5s busy_timeout, synchronous=NORMAL, and foreign_keys=ON pragmas immediately after opening each connection so concurrent main+worker writers share the same locking configuration and avoid SQLITE_BUSY under contention. --- src/main/database-base.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/database-base.ts b/src/main/database-base.ts index 036b690a..ce081b94 100644 --- a/src/main/database-base.ts +++ b/src/main/database-base.ts @@ -378,7 +378,12 @@ export class AppDatabaseBase { } protected openConnection(): DatabaseSync { - return new DatabaseSync(this.dbPath, { timeout: 5000 }); + const db = new DatabaseSync(this.dbPath, { timeout: 5000 }); + db.exec("pragma journal_mode = WAL;"); + db.exec("pragma busy_timeout = 5000;"); + db.exec("pragma synchronous = NORMAL;"); + db.exec("pragma foreign_keys = ON;"); + return db; } protected transaction(operation: () => T): T {