sqlite-utils 4.0rc1 lança migrações integradas e transações aninhadas no estilo Django
Simon Willison lançou sqlite-utils 4.0rc1, o primeiro release candidate da versão v4 de sua biblioteca Python amplamente utilizada e ferramenta CLI para trabalhar com bancos de dados SQLite. A adição principal é um sistema de migrações integrado — uma porta do seu pacote sqlite-migrate independente, que já viu uso no mundo real em projetos como sua própria ferramenta LLM CLI. Migrações são definidas como funções Python decoradas e podem ser executadas via API Python (migrations.apply(db)) ou um novo comando sqlite-utils migrate CLI.
O segundo novo recurso é db.atomic(), uma API de context-manager para transações aninhadas respaldadas por savepoints SQLite — emprestando a terminologia 'atomic' do Django e Peewee. Permite que blocos de transação internos façam rollback independentemente sem desativar a transação externa. O lançamento também carrega várias mudanças incompatíveis: upsert agora usa sintaxe INSERT … ON CONFLICT SET, o tipo de coluna float padrão muda de FLOAT para REAL, table.convert() não pula mais valores falsy, e importações CSV/TSV agora auto-detectam tipos por padrão. Python 3.8 é descontinuado; 3.13 é suportado. O RC pode ser testado via pip install sqlite-utils==4.0rc1 ou uvx.
Fontes
- 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”