Резервные копии
Резервные копии — это онлайн-снимки SQLite, создаваемые через SQLite Backup API, безопасные при работе с WAL и восстанавливаемые без внешних инструментов.
Модель резервного копирования
Резервная копия — это согласованный снимок базы данных SQLite, создаваемый во время работы сервера:
POST /api/v2/backupsсоздаёт снимок через SQLite Backup API, что безопасно с WAL и не блокирует читателей.GET /api/v2/backupsперечисляет существующие резервные копии; содержимое кэша и логи не включаются.
Каждая запись резервной копии показывает дату, размер, версию схемы, источник и состояние. UI показывает ту же информацию, и создание резервной копии никогда не прерывает чтение локальных данных.
Что покрывают резервные копии
Резервная копия покрывает всю структурированную базу данных: персонажей, персон, чаты и сообщения, лорбуки, пресеты, конфигурации провайдеров, состояние плагинов и настройки. Она не включает:
cache/thumbnails/— пересоздаваемо и исключено по замыслу;- логи — исключены по замыслу;
- каталоги подготовки импорта — временны по замыслу.
Оригиналы в files/ адресуются по содержимому и никогда не затрагиваются
обслуживанием кэша, поэтому они не входят в сам снимок.
Восстановление
POST /api/v2/backups/:id/restore следует безопасной последовательности:
- Создание и ротация защитной резервной копии текущего состояния.
- Проверка выбранного снимка с помощью
PRAGMA quick_check. - Копирование в живую базу через SQLite Online Backup API.
Соединение и репозитории остаются открытыми: ответ несёт
restartRequired: false, и последующие чтения и записи продолжают работать
без перезапуска. Восстановление никогда не требует внешних инструментов
SQLite. Неудачный снимок или копирование возвращает RESTORE_FAILED, а
защитная копия сохраняется, поэтому текущее состояние никогда не теряется
при неудачном восстановлении.
В UI восстановление требует явного подтверждения, никогда не сообщается как успешное до прохождения проверки целостности и предлагает автоматический возврат к защитной копии при сбое. Удаление резервной копии предупреждает вас, если это последняя рабочая копия.
Резервные копии как страховочная сеть
Те же механизмы снимков защищают опасные операции:
- Раннер миграций создаёт резервную копию до миграции для заполненных баз перед миграциями, которые перестраивают или изменяют форму таблиц.
- Выполнение импорта создаёт защитную копию перед записью любых выбранных данных, поэтому неудачный или прерванный импорт всегда можно откатить.
- Восстановление всегда сначала снимает текущее состояние, как описано выше.
См. также
- Хранилище SQLite о самой базе данных.
- Файлы и изображения о том, что живёт вне базы данных.
- Пользовательский сценарий документирован в Руководстве пользователя.