#SQLite

Prefer STRICT Tables in SQLite

evanhahn.com · ⭐️ 8/10 · 2026-07-11

8/10

An article recommends using STRICT tables in SQLite, introduced in version 3.37.0 (2021-11-27), to enforce data type constraints and improve database reliability, especially when multiple applications share the same database. This tip addresses a common criticism of SQLite's dynamic typing, making it more robust for multi-application scenarios and encouraging safer database practices. It could drive adoption of STRICT tables and potentially influence future defaults. STRICT tables enforce exact data types and disallow type coercion, but they do not support some types like DATE. Each table must be explicitly declared as STRICT.

sqlite-utils 4.0 adds database migrations and nested transactions

simonwillison.net · ⭐️ 8/10 · 2026-07-07

8/10

sqlite-utils 4.0, released on July 7, 2026, introduces three major features: database schema migrations, nested transactions via a new db.atomic() method, and support for compound foreign keys. This release significantly enhances sqlite-utils as a tool for managing SQLite databases, addressing common needs for schema versioning and transactional safety. Developers using Python for data management will benefit from easier migration workflows and more robust transaction handling. Migrations are defined in Python files using the Migrations class and the table.transform() method, which implements SQLite's recommended pattern of creating a temporary table. Nested transactions use SQLite savepoints under the hood, and compound foreign keys allow referencing multiple columns.