sqlite-utils 4.0rc3 swaps foreign_keys to a namedtuple, breaks old indexing
Every URL the pipeline pulled into ranking for this issue — primary sources plus the supporting and contradicting findings each Researcher returned. Inline citations in the issue point back here.
Sources
sqlite-utils 4.0rc3 simonwillison.net
Release: sqlite-utils 4.0rc3 I hoped to release sqlite-utils 4.0 stable this weekend, but as I worked through the backlog of issues and PRs with a combination of Claude Fable 5 and GPT-5.5 the changelog since rc2 kept getting bigger . The biggest new feature is support for introspecting and creating compound foreign keys - a feature that involves a subtle breaking change to table.foreign_keys and hence needed to land for the 4.0 stable release. sqlite-utils also now follows SQLite’s convention…
References
sqlite-utils changelog (rc3, 2026-07-05) sqlite-utils.datasette.io
Support for introspecting and creating compound foreign keys … a subtle breaking change to table.foreign_keys … sqlite-utils now follows SQLite’s convention for case insensitive column names, which turned out to touch a bunch of different places at once.
sqlite-utils Python API docs (compound FK example) sqlite-utils.datasette.io
list(db[“courses”].foreign_keys) returns [ForeignKey(table=‘courses’, column=None, other_table=‘departments’, other_column=None, columns=(‘campus_id’,‘dept_id’), other_columns=(‘campus_id’,‘dept_id’), is_compound=True)]
AI Weekly digest of sqlite-utils 4.0rc1 aiweekly.co
the new default of running migrations within a transaction can conflict with operations like VACUUM, which SQLite prohibits inside transactions … led to unexpected failures in CI/CD pipelines
Hacker News thread on 4.0rc2 (jph00 comment) news.ycombinator.com
sqlite-utils is too tethered to Python’s standard library transaction handling … apsw-utils ports the utility ergonomics onto APSW, which matches SQLite’s own documented transaction semantics.
Medium: ‘An AI wrote 576,000 lines to replace SQLite’ medium.com
Willison reported the rc2 cycle cost roughly $149.25 in Claude Fable API credits — a ‘cents-per-feature’ economics that critics call cognitive debt, noting a METR study found experienced devs were 19% slower with AI despite feeling 20% faster.