У меня есть приложение Python, которое выдает стандартную ошибку sqlite3.OperationalError: database is locked
. Я просмотрел интернет и не смог найти ни одного работающего решения (обратите внимание, что многопроцессорные процессы / многопоточность не выполняются, и, как вы можете видеть, я попытался увеличить параметр timeout). Файл sqlite хранится на локальном жестком диске.
Следующая функция является одной из многих, которая обращается к базе данных sqlite и работает нормально при первом вызове, но выдает вышеуказанную ошибку при втором вызове (она вызывается как часть цикла for
в другая функция):
def update_index(filepath):
path = get_setting('Local', 'web')
stat = os.stat(filepath)
modified = stat.st_mtime
index_file = get_setting('Local', 'index')
connection = sqlite3.connect(index_file, 30)
cursor = connection.cursor()
head, tail = os.path.split(filepath)
cursor.execute('UPDATE hwlive SET date=? WHERE path=? AND name=?;', (modified, head, tail))
connection.commit()
connection.close()
Большое спасибо.