From 71a6a600775611ac6c371e92898c9e8df77f398c Mon Sep 17 00:00:00 2001 From: sagit Date: Thu, 12 Feb 2026 01:07:41 +0000 Subject: [PATCH] fix(store): enable WAL mode and busy timeout to prevent SQLITE_BUSY errors Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus --- go-backend/internal/store/sqlite/repository.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/go-backend/internal/store/sqlite/repository.go b/go-backend/internal/store/sqlite/repository.go index 7f6bc00..96a4f90 100644 --- a/go-backend/internal/store/sqlite/repository.go +++ b/go-backend/internal/store/sqlite/repository.go @@ -165,7 +165,13 @@ func Open(path string) (*Repository, error) { return nil, err } - db, err := sql.Open("sqlite", path) + // Use _pragma DSN parameters so every connection from the pool gets + // the same settings (busy_timeout and synchronous are per-connection). + dsn := "file:" + path + + "?_pragma=busy_timeout(5000)" + + "&_pragma=journal_mode(WAL)" + + "&_pragma=synchronous(NORMAL)" + db, err := sql.Open("sqlite", dsn) if err != nil { return nil, err }