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

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