Mechanism◆Article
table.transform()/table.transform_sql() and the sqlite-utils transform CLI command now accept strict=True/False or --strict/--no-strict to change a table's SQLite strict mode, since transform already copies data into a new table and can therefore switch strictness in either direction.
New strict-mode options were added to sqlite-utils' transform functionality, letting users switch a table from strict to non-strict or vice versa by leveraging the existing copy-based transform mechanism. ✦ AI generated
Simon Willison · Simon Willison's Weblog · 2026-07-11 · original ↗
That's exactly what the sqlite-utils transform mechanism does, so I extended it to add the ability to switch tables from strict to non-strict and vice-versa.
Read full article ↗excerpt · fair-use quotation
- ·table.transform()/transform_sql() add strict=True/False params
- ·CLI transform command gets --strict/--no-strict flags
- ·Transform already copies data into a new table
- ·So it can switch strictness either direction
- ·Transform mechanism rebuilds tables by copying data
- ·Copying step allows changing table schema properties
- ·Strictness toggle reuses this existing copy mechanism
- ·Works both strict→non-strict and non-strict→strict
Around this claim
Mechanism · 2
table.transform() implements the SQLite-documentation-recommended pattern for altering tables beyond what ALTER TABLE supports: create a new temp table with the new schema, copy the data across, then drop the old table and rename the new one into place.Simon Willison · Simon Willison's Weblog · conf 70%sqlite-utils 4.2 adds lots of improvements to the table.transform() feature, which supports complex alter table operations by creating a fresh table, copying across the data, and then dropping and replacing the old one.Simon Willison · Simon Willison's Weblog · conf 70%