Бэкап SQLite прошёл integrity_check, но потерял 90% данных: проверяю пять способов копирования

Habr ·

Бэкап SQLite прошёл integrity_check, но потерял 90% данных: проверяю пять способов копирования

Для небольшого проекта мне понадобилось настроить резервное копирование SQLite. База используется постоянно, останавливать приложение ради каждого бэкапа не хотелось. При этом копия должна сохранять все подтвержденные транзакции. Я рассматривала несколько вариантов: обычное копирование файлов, SQLite Backup API и VACUUM INTO . Я начала с самого простого способа — скопировать только app.db . В скрипте для этого использовалась функция shutil.copy2() , то есть обычное файловое копирование. Копия создалась без ошибок, а проверка PRAGMA integrity_check вернула ok . Однако из ста подтвержденных заказов в копии оказалось только десять. Читать далее

Источник: Habr