Задать вопрос
  • Как избежать ошибки database is locked?

    @galaxy
    Sqlite так устроена - читающих соединений может быть много, но пишущее - только одно в каждый момент времени. Причем по умолчанию пишущее соединение заблокирует и всех читателей.
    Чтобы читатели не блокировались, нужно включить WAL
    db.execute("PRAGMA journal_mode=WAL")

    При этом пишущее соединение по-прежнему будет в каждый момент одно. Если это вас не устраивает, вы выбрали неправильный инструмент, и надо смотреть в сторону нормальных серверных СУБД (mysql, postgresql).
    Теоретически могло бы помочь выставление большего таймаута (но я не вижу, как его вообще менять в aiosqlite) или отлов ошибки "database is locked" и повторные попытки.
    Ответ написан
    Комментировать
  • Как избежать ошибки database is locked?

    Как избежать ошибки database is locked?

    Избавиться от SQLite
    Ответ написан
    Комментировать