Datasette-плагин upload-dbs получил API для подмены SQLite-баз

Вышла версия 0.5a0 плагина datasette-upload-dbs для Datasette. Плагин существует давно и позволяет пользователям загружать новую SQLite-базу данных на размещённый (хостящийся) инстанс Datasette, после загрузки этот инстанс начинает отдавать именно её. Той же механикой плагин умеет атомически подменять базу более свежей версией: загруженный файл сначала сохраняется, затем проверяется и только после этого подставляется вместо старого, так что нужный адрес начинает отвечать уже новыми данными.

Главное изменение релиза, формализованный API для этой операции. Теперь заменить существующую базу или добавить новую можно одним POST-запросом на эндпоинт /-/upload-dbs: в заголовке передаётся токен авторизации (Bearer), а в теле запроса, сам файл базы и её имя (multipart-поля db и db_name).

Это открывает практический сценарий: собрать свежую SQLite-базу в CI-окружении вроде GitHub Actions и сразу после сборки атомически подменить ею продакшн-версию, без остановки сервиса и без ручных шагов.

Ключевые факты

  • Вышла версия 0.5a0 плагина datasette-upload-dbs для Datasette.
  • Плагин давно умеет принимать загрузку новой SQLite-базы и делать её активной на инстансе Datasette.
  • Подмена атомическая: файл сохраняется, проверяется и только потом заменяет действующую базу.
  • Новинка релиза, формализованный HTTP API: POST-запрос с токеном авторизации и файлом базы на эндпоинт /-/upload-dbs заменяет существующую базу или добавляет новую.
  • Сценарий использования: собрать свежую базу в CI (например, GitHub Actions) и сразу подменить ею продакшн-версию.

Почему это важно

Формализованный API переводит подмену базы из разовой операции в шаг, который можно встроить в автоматический процесс: один документированный HTTP-запрос вместо произвольного способа взаимодействия с инстансом. Это стандартный для инфраструктурных инструментов шаг, от «плагин это умеет» к «плагином можно управлять программно и предсказуемо», что и делает функцию пригодной для CI/CD.

Кому это важно

Разработчикам и командам, которые держат Datasette в продакшне поверх SQLite и обновляют данные регулярно, а также тем, кто строит ETL- или CI-пайплайны, пересобирающие базу и заливающие её результат в работающий сервис без простоя.

Как это применить

Обновить плагин до версии 0.5a0, выпустить токен авторизации для инстанса и после сборки новой SQLite-базы отправлять на неё POST-запрос на эндпоинт /-/upload-dbs с заголовком Bearer-авторизации и файлом базы (поля db и db_name), например, финальным шагом джобы в GitHub Actions.

Можно ли доверять

Источник, официальный анонс релиза на сайте Саймона Уиллисона, автора и мейнтейнера Datasette и его плагинов, то есть первоисточник от самого разработчика инструмента. Оснований сомневаться в описании функциональности нет.

Риски и подводные камни

Номер версии 0.5a0, альфа, то есть ранняя, потенциально нестабильная стадия. В самом релизе не описаны настройка авторизации, обработка ошибок и поведение при неудачной подмене (откат), нет данных о скорости загрузки/подмены и нет сравнения с предыдущей версией плагина, прежде чем полагаться на эндпоинт в проде, эти детали стоит проверить отдельно.