sqlite3, PRAGMA wal_checkpoint () для нескольких подключений к одной базе данных - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть два подключения (и курсора) к одной базе данных 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). Я не вижу четкой информации об этом в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...