7 июля 2026 года Simon Willison выпустил sqlite-utils 4.0 — 124-й релиз библиотеки и первый мажорный с ноября 2020 года. Три новые фичи: миграции схем, вложенные транзакции через db.atomic() и составные внешние ключи. Но самая показательная часть релиза — не код, а процесс его создания: Claude Fable 5 нашёл 14 реальных проблем там, где GPT-5.5 не нашёл ничего существенного.
Контекст
Simon Willison — один из создателей Django и автор экосистемы инструментов вокруг SQLite: sqlite-utils, Datasette и LLM CLI. sqlite-utils — это Python-библиотека и CLI для работы с SQLite, существующая с 2018 года. Ценится тем, что снимает боль с типичных операций: импорт CSV и JSON в таблицы, запросы без написания DDL, работа с данными без тяжёлых ORM.
Главная фича 4.0 — миграции схем. SQLite не поддерживает многие операции ALTER TABLE: нельзя переименовать колонку, изменить тип, удалить колонку через стандартный SQL. Willison давно реализовал обходной паттерн через table.transform() — создать новую таблицу с новой схемой, скопировать данные, удалить старую. Теперь поверх этого добавлен полноценный migration-слой с трекингом через служебную таблицу _sqlite_migrations.
Миграции три года существовали в виде отдельного бета-пакета sqlite-migrate. Версия 4.0 — это промоушен проверенного решения в основную библиотеку. Последний релиз sqlite-migrate теперь просто реэкспортирует Migrations из sqlite-utils, так что существующие проекты продолжат работать без изменений.
Аналитика
Релиз важен по двум причинам, и они не равнозначны по значимости для индустрии.
Техническая: миграции схем в SQLite — давняя боль. Разработчики либо мирились с несовершенными обходными путями, либо тащили в проект Alembic или Django ORM только ради этой фичи. sqlite-utils 4.0 закрывает пробел прагматично: без автогенерации из моделей (как в Django Migrations от Andrew Godwin), без rollback (намеренно — «просто скопируй файл БД до миграции»), но с нормальным tracking и хорошей интеграцией с существующими возможностями. Добавление db.atomic() с поддержкой вложенных транзакций через SQLite Savepoints делает migration-систему безопаснее.
Процессная — интереснее. Willison описывает конкретный эксперимент: один и тот же промпт («проверь готовность к релизу, пиши тесты сам, не коммить их») — двум разным моделям. Claude Fable 5 написал 12 тестовых скриптов, нашёл 4 release blocker'а и 10 дополнительных проблем, собрал комбинированный репро-скрипт. GPT-5.5 в Codex Desktop написал 5 скриптов и «не нашёл ничего особенно интересного». Это не маркетинговый бенчмарк — это реальная задача, зафиксированная публично автором, который использовал оба инструмента.
«Нет никаких сомнений, что sqlite-utils 4.0 — значительно более качественный релиз, чем если бы я собирал его без помощи последних frontier-моделей» — Simon Willison
Паттерн, который сработал: открытая задача + доступ к инструментам + автономия в написании тестов. Не «проверь этот файл» — а «возьми готовность к релизу под своё ответственность». Разница в результате — принципиальная, и это прямой аргумент для любой AI-first команды, которая ещё использует LLM только для генерации кода по узким заданиям.
Кейсы применения в бизнесе
B2B SaaS стартап: если используете SQLite как основное или вспомогательное хранилище — embedded analytics, tenant-isolated БД, быстрый MVP без Postgres — sqlite-utils 4.0 даёт migration-layer без необходимости тащить Alembic. Особенно актуально для edge-деплоев, serverless-окружений или local-first продуктов. Схема эволюционирует управляемо через один файл migrations.py.
Корпорация с legacy Python-скриптами: многие ETL-пайплайны используют SQLite как временное хранилище между этапами обработки. Добавить schema versioning к существующему коду теперь — это несколько строк Python и одна команда CLI. Не нужно переписывать пайплайн под тяжёлый стек.
SMB и локальные продукты в КР и СНГ: sqlite-utils CLI позволяет работать с данными без глубокой SQL-экспертизы. Версия 4.0 делает инструмент пригодным для production-grade проектов — со структурой миграций, транзакциями и автоматической типизацией при импорте CSV. Для небольшой команды, строящей внутренний инструмент на Python, это всё что нужно.
Кейсы в личной жизни
Разработчик: sqlite-utils используется в LLM CLI Willison напрямую. Если вы работаете с local AI-инструментами или строите собственные, версия 4.0 делает их schema evolution более надёжной. Паттерн миграций из исходников LLM CLI — хорошая точка входа для понимания того, как это работает в production.
Контент-мейкер, ведущий личную базу данных: закладки, статьи, YouTube-аналитика — всё это часто хранится в SQLite через разные инструменты. Команда uvx sqlite-utils migrate — zero-dependency способ держать схему актуальной без ручных SQL-патчей при каждом обновлении.
Студент или исследователь данных: паттерн Python + SQLite + sqlite-utils — более лёгкая альтернатива полному стеку с Postgres и Alembic для учебных и исследовательских проектов. Миграции теперь доступны с той же простотой, что и базовые операции с таблицами.
Как применить сегодня
- Обновить: pip install "sqlite-utils>=4" или uvx sqlite-utils
- Попробовать миграции: создать migrations.py с from sqlite_utils import Migrations, запустить uvx sqlite-utils migrate data.db migrations.py на тестовой БД
- Если используете sqlite-migrate — просто обновить пакет, он теперь реэкспортирует всё из sqlite-utils, ничего менять не нужно
- Проверить breaking changes перед апгрейдом с 3.x: db.query() теперь только для SELECT, для записи — db.execute(); CSV-импорт теперь автоматически определяет типы колонок
- Попробовать open-review паттерн: дать Claude доступ к коду и написать «проверь готовность к релизу, пиши тестовые скрипты сам, найди все проблемы» вместо узкого «проверь этот файл»