sqlite-utils 4.0rc1 lanza migraciones integradas y transacciones anidadas al estilo Django
Simon Willison lanzó sqlite-utils 4.0rc1, el primer candidato de lanzamiento de la versión v4 de su ampliamente utilizada biblioteca Python y herramienta CLI para trabajar con bases de datos SQLite. La adición principal es un sistema de migraciones integrado — una adaptación de su paquete sqlite-migrate independiente, que ya ha visto uso en el mundo real en proyectos como su propia herramienta LLM CLI. Las migraciones se definen como funciones Python decoradas y se pueden ejecutar a través de la API de Python (migrations.apply(db)) o un nuevo comando sqlite-utils migrate CLI.
La segunda característica nueva es db.atomic(), una API de context-manager para transacciones anidadas respaldadas por savepoints de SQLite — tomando la terminología 'atomic' de Django y Peewee. Permite que los bloques de transacción internos se reviertan de forma independiente sin deshacer la transacción externa. El lanzamiento también trae varios cambios disruptivos: upsert ahora usa la sintaxis INSERT … ON CONFLICT SET, el tipo de columna float predeterminado cambia de FLOAT a REAL, table.convert() ya no omite valores falsy, e las importaciones CSV/TSV ahora detectan tipos automáticamente de forma predeterminada. Python 3.8 ya no es compatible; se admite 3.13. El RC se puede probar a través de pip install sqlite-utils==4.0rc1 o uvx.
Fuentes
- Primary source
- Simon Willison on Bluesky
“I just released the first release candidate for sqlite-utils v4, adding a migrations system (previously released independently as sqlite-migrate) and support for nested transactions”