У меня есть два подключения (и курсора) к одной базе данных sqlite, одно из которых предназначено только для чтения, а другое - для записи. БД настроен для работы в режиме WAL как:
con = sqlite3.connect("/mnt/tmp/foo.db", isolation_level=None)
con.execute('PRAGMA journal_mode=WAL')
con_reader = sqlite3.connect("/mnt/tmp/foo.db", isolation_level=None)
con_reader.execute('PRAGMA journal_mode=WAL')
cur = con.cursor()
cur_reader = con_reader.cursor()
Я бы хотел вручную принудительно установить контрольную точку в базе данных WAL через фиксированные интервалы, используя:
con.execute('PRAGMA wal_checkpoint(RESTART)')
Нужно ли вводить эту команду PRAGMA отдельно для обоих соединений? Кажется, что выдача команды только из одного соединения будет достаточной, поскольку я имею дело только с отдельными файлами БД (foo.db
, foo.db-wal
и foo.db-shm
). Я не вижу четкой информации об этом в документации.