migrate Today and Later SQLite schemas once per database version instead of on every connection
keep ordinary connections free of WAL setup, DDL, migration backfills, and commits
prove initialized reads remain available during an independent planning write
Verification
RED: both new lock-contention tests failed with sqlite3.OperationalError: database is locked
focused: 21 passed
full suite: 1367 passed in 73.77s
contention probe: 100/100 reads succeeded for both stores while a writer held BEGIN IMMEDIATE
Closes #699
## What changed
- migrate Today and Later SQLite schemas once per database version instead of on every connection
- keep ordinary connections free of WAL setup, DDL, migration backfills, and commits
- prove initialized reads remain available during an independent planning write
## Verification
- RED: both new lock-contention tests failed with `sqlite3.OperationalError: database is locked`
- focused: `21 passed`
- full suite: `1367 passed in 73.77s`
- contention probe: 100/100 reads succeeded for both stores while a writer held `BEGIN IMMEDIATE`
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #699
What changed
Verification
sqlite3.OperationalError: database is locked21 passed1367 passed in 73.77sBEGIN IMMEDIATE