diff --git a/backend/db/index.ts b/backend/db/index.ts index 458b13a..22089ff 100644 --- a/backend/db/index.ts +++ b/backend/db/index.ts @@ -50,6 +50,12 @@ async function openDatabase(options: DatabaseOpenOptions) { fileName = resolve(path, "main.db"); await Deno.mkdir(path, { recursive: true }); const database = new Database(fileName, options); + + // Enable WAL mode for better concurrency (allows concurrent readers and writers) + database.exec("PRAGMA journal_mode = WAL"); + // Set busy timeout to 30 seconds to wait for locks instead of failing immediately + database.exec("PRAGMA busy_timeout = 30000"); + return database; } diff --git a/backend/db/minimal.ts b/backend/db/minimal.ts index 545fb44..1ca0f83 100644 --- a/backend/db/minimal.ts +++ b/backend/db/minimal.ts @@ -6,6 +6,12 @@ async function openDatabase(options: DatabaseOpenOptions) { fileName = resolve(path, "main.db"); await Deno.mkdir(path, { recursive: true }); const database = new Database(fileName, options); + + // Enable WAL mode for better concurrency (allows concurrent readers and writers) + database.exec("PRAGMA journal_mode = WAL"); + // Set busy timeout to 30 seconds to wait for locks instead of failing immediately + database.exec("PRAGMA busy_timeout = 30000"); + return database; }