Simon Willison wydał sqlite-utils 4.0, 124. wydanie projektu i pierwsza główna aktualizacja od wersji 3.0 z listopada 2020 roku. Nowa wersja zawiera znaczące zmiany w API oraz trzy kluczowe nowe funkcje: migracje schematów baz danych, zagnieżdżone transakcje i wsparcie dla złożonych kluczy obcych.

Serdcem novości jest system migracji, który umożliwia definiowanie sekwencji zmian w schemacie SQLite i automatyczne śledzenie, które migracje zostały już zastosowane. Migracje tworzy się w plikach Pythona za pomocą biblioteki sqlite-utils, a kluczową rolę odgrywa metoda table.transform() - zaawansowana alternatywa dla ograniczonego ALTER TABLE w SQLite. Metoda ta implementuje rekomendowany przez SQLite pattern: tworzy nową tymczasową tabelę z nowym schematem, kopiuje dane, usuwa starą tabelę i przemianowuje tymczasową na jej miejsce. W praktyce umożliwia to operacje niemożliwe standardowymi narzędziami SQLite, takie jak dodawanie kolumn w konkretnych pozycjach czy zmiana typów danych.

Dodatkowe funkcje wersji 4.0 - zagnieżdżone transakcje poprzez nową metodę db.atomic() i wsparcie dla złożonych kluczy obcych - rozszerzają możliwości zarządzania danymi w SQLite. Wraz z pewną liczbą łamiących wsteczną kompatybilność zmian (szczegółowo opisanych w przewodniku aktualizacji), wydanie stanowi znaczący krok w ewolucji sqlite-utils jako narzędzia do pracy z SQLite z poziomu Pythona.