Create new databases with auto_vacuum incremental (closes #43)
check / check (push) Successful in 3m36s

SQLite only accepts auto_vacuum before the database file is first
written. The connection switched to WAL first, which writes the file,
so the PRAGMA auto_vacuum in Initialize came too late and was ignored:
new databases had auto_vacuum off and the periodic incremental vacuum
freed nothing. The setting now goes in the connection string, which the
driver applies on open before the journal mode, and the late PRAGMA is
removed. Tests check that every pooled connection sees auto_vacuum
incremental on a new database and that Vacuum reduces the free page
count after routes are deleted.

Model: opus-5-5
This commit is contained in:
2026-10-03 12:31:36 +00:00
parent 7322f936e4
commit 3e35fae822
3 changed files with 89 additions and 5 deletions
+5
View File
@@ -28,6 +28,11 @@ The other open issue is https://git.eeqj.de/sneak/routewatch/issues/30.
# Completed Steps
- 2026-10-03: a new database is created with `auto_vacuum` set to
incremental, through the connection string so it is set before the file
is first written, and the periodic incremental vacuum now returns free
pages; the late `PRAGMA auto_vacuum` in `Initialize`, which SQLite
ignored, is gone (closes #43)
- 2026-10-02: a plain `docker build .` stamps the commit's tag or short
commit (`git describe --tags --always`) into the page footer instead of
`unknown`: `.dockerignore` sends `.git` without `.git/config`, a `VERSION`