From 349c966c63ba1a213c837e9c7ced3ac6bbe8486e Mon Sep 17 00:00:00 2001 From: Nazar Kanaev Date: Fri, 21 Jun 2024 10:56:48 +0100 Subject: [PATCH] sqlite parameters --- .gitignore | 2 ++ src/storage/storage.go | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 84087b4..04c489f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ /_output /yarr *.db +*.db-shm +*.db-wal *.syso versioninfo.rc diff --git a/src/storage/storage.go b/src/storage/storage.go index bb5f5ae..25d1c50 100644 --- a/src/storage/storage.go +++ b/src/storage/storage.go @@ -2,6 +2,9 @@ package storage import ( "database/sql" + "log" + "strings" + _ "github.com/mattn/go-sqlite3" ) @@ -10,14 +13,17 @@ type Storage struct { } func New(path string) (*Storage, error) { + if pos := strings.IndexRune(path, '?'); pos == -1 { + params := "_journal=WAL&_sync=NORMAL&_busy_timeout=5000&cache=shared" + log.Printf("opening db with params: %s", params) + path = path + "?" + params + } + db, err := sql.Open("sqlite3", path) if err != nil { return nil, err } - // TODO: https://foxcpp.dev/articles/the-right-way-to-use-go-sqlite3 - db.SetMaxOpenConns(1) - if err = migrate(db); err != nil { return nil, err }