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.