Zen of Python
Фотография
нажмите — покажем
нажмите — покажем
Как сделать бэкап работающей SQLite через Python
Просто скопировать файл активной базы рискованно. Во время копирования страницы могут изменяться, а при WAL часть данных находится в отдельном журнале.
Python предоставляет доступ к SQLite Online Backup API через Connection.backup(). Метод вызывают у источника и передают ему соединение с приёмником:
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("app.db")) as src:
with closing(sqlite3.connect("backup.db")) as dst:
src.backup(dst)
SQLite согласует копирование с работой базы. Получившаяся копия самостоятельна: следующие записи в исходник в неё не попадут.
Здесь closing нужен для закрытия соединений: обычный with connection управляет транзакцией, но не закрывает соединение. После бэкапа проверьте восстановление и чтение данных.
#python #sqlite
❤2
10 · 879 ·