The sqlite-utils project has released version 4.0, its first major update since November 2020. This release introduces three significant features: database schema migrations, nested transactions via a new `db.atomic()` method, and support for compound foreign keys.

  • Database schema migrations allow users to define and track sequence of changes to SQLite databases using Python files and the `table.transform()` method.
  • The system tracks applied migrations in a `_sqlite_migrations` table and supports scanning directories for pending updates via the `uvx sqlite-utils migrate` command.
  • Nested transactions are enabled through the new `db.atomic()` context manager.
  • Compound foreign keys are now supported, expanding relational capabilities beyond simple single-column references.

These additions provide developers with robust tools for managing database schema evolution and complex transactional logic within SQLite.