sqlite-utils 4.0rc1 añade migraciones y transacciones anidadas
Simon Willison ha lanzado la versión preliminar sqlite-utils 4.0rc1, que incluye nuevas características como migraciones y transacciones anidadas.
sqlite-utils es una biblioteca Python y herramienta de línea de comandos para trabajar con bases de datos SQLite. La nueva versión introduce cambios menores pero incompatibles con versiones anteriores.
“Una de las novedades es el soporte para migraciones, que permite actualizar la estructura de tablas de manera controlada”
Una de las novedades es el soporte para migraciones, que permite actualizar la estructura de tablas de manera controlada. Por ejemplo:
```python from sqlite_utils import Database, Migrations
migrations = Migrations("creatures") @migrations() def create_table(db): db["creatures"].create({"id": int, "name": str, "species": str}, pk="id")
@migrations() def add_weight(db): db["creatures"].add_column("weight", float) ```
Otra mejora es la función `db.atomic()`, que facilita el manejo de transacciones anidadas:
```python with db.atomic(): db.table("dogs").insert({"id": 1, "name": "Cleo"}, pk="id") try: with db.atomic(): db.table("dogs").insert({"id": 2, "name": "Pancakes"}) raise ValueError("skip this one") except ValueError: pass db.table("dogs").insert({"id": 3, "name": "Marnie"}) ```
Estas características están documentadas en la página oficial de sqlite-utils. La versión estable se lanzará tras recibir comentarios y pruebas adicionales.