Волна ИИПодписаться
← Назад
Инструменты

sqlite-utils 4.0: наконец-то миграции схемы для SQLite — и это работает

07.07.2026 · simonwillison.net ↗

Саймон Уиллисон выпустил sqlite-utils 4.0 — это первый мажорный релиз утилиты с ноября 2020-го. Главное нововведение — встроенная система миграций схемы базы данных, которая отслеживает, какие миграции уже применены, и автоматически применяет ожидающие.

Миграции задаются в Python-файлах через класс Migrations и декоратор @migrations(). Внутри они используют метод table.transform() — это обёртка над классическим паттерном из документации SQLite: создаётся временная таблица с новой схемой, в неё копируются данные, потом старая таблица удаляется, а временная переименовывается. Так можно менять типы колонок и добавлять поля — то, что не умеет обычный ALTER TABLE.

Утилита также получила поддержку вложенных транзакций через db.atomic() и составных внешних ключей. Команда uvx sqlite-utils migrate data.db migrations.py --list показывает статус всех миграций. А если не указать файл, то sqlite-utils просканирует текущую директорию в поисках migrations.py.

Сам Уиллисон уже несколько лет использует похожую систему в своём инструменте LLM, а за вдохновение благодарит джанговские миграции от Эндрю Годвина и Саут. Его собственный старый проект dmigrations остался в 2008 году на первом DjangoCon.

Источник: simonwillison.net
← Все новости AI Wave