switch database to wal mode
Ted Unangst tedu@tedunangst.com
Tue, 31 May 2022 03:06:09 -0400
5 files changed,
22 insertions(+),
4 deletions(-)
M
README
→
README
@@ -20,7 +20,7 @@
-- build It should be sufficient to type make after unpacking a release. -You'll need a go compiler version 1.13 or later. And libsqlite3. +You'll need a go compiler version 1.16 or later. And libsqlite3. Even on a fast machine, building from source can take several seconds.@@ -42,7 +42,7 @@ ./honk
-- upgrade -cp honk.db backup.db +old-honk backup `date +backup-%F` ./honk upgrade ./honk
M
database.go
→
database.go
@@ -19,8 +19,8 @@ import (
"bytes" "crypto/sha512" "database/sql" - "encoding/json" _ "embed" + "encoding/json" "fmt" "html/template" "sort"
M
docs/changelog.txt
→
docs/changelog.txt
@@ -2,6 +2,8 @@ changelog
=== next ++ Switch database to WAL mode. + - go version 1.16 required. + Specify banner: image in profile.
M
upgradedb.go
→
upgradedb.go
@@ -22,7 +22,7 @@ "strings"
"time" ) -var myVersion = 40 +var myVersion = 41 type dbexecer interface { Exec(query string, args ...interface{}) (sql.Result, error)@@ -200,6 +200,12 @@ }
doordie(db, "update config set value = 40 where key = 'dbversion'") fallthrough case 40: + doordie(db, "PRAGMA journal_mode=WAL") + blobdb := openblobdb() + doordie(blobdb, "PRAGMA journal_mode=WAL") + doordie(db, "update config set value = 41 where key = 'dbversion'") + fallthrough + case 41: default: elog.Fatalf("can't upgrade unknown version %d", dbversion)
M
util.go
→
util.go
@@ -100,6 +100,11 @@ os.Remove(dbname)
os.Exit(1) }() + _, err = db.Exec("PRAGMA journal_mode=WAL") + if err != nil { + elog.Print(err) + return + } for _, line := range strings.Split(sqlSchema, ";") { _, err = db.Exec(line) if err != nil {@@ -172,6 +177,11 @@ if err == nil {
elog.Fatalf("%s already exists", blobdbname) } blobdb, err := sql.Open("sqlite3", blobdbname) + if err != nil { + elog.Print(err) + return + } + _, err = blobdb.Exec("PRAGMA journal_mode=WAL") if err != nil { elog.Print(err) return