2013-02-25 1 views
6

Я использую sqlite (v2.6.0) в качестве базы данных и используя sqlalchemy (v0.7.9) для ее работы. Недавно я получил ошибку OperationalError: (OperationalError) database is lockedКак увеличить время ожидания соединения с использованием sqlalchemy с sqlite в python

При поиске stackoverflow возможным решением является увеличение таймаута соединения. Referece: OperationalError: database is locked

Но я не знаю, как так, что в SQLAlchemy (так как соединение фактически контролируется им) Может кто-нибудь дать мне направление?

+1

FWIW, увеличивая время ожидания, вероятно, только собирается сделать эту ошибку реже. лучше повторить попытки. –

ответ

13

SQLAlchemy-х create_engine() принимает аргумент connect_args который является словарь, который будет передан connect() подстилающей DBAPI (см Custom DBAPI connect() arguments). sqlite3.connect() принимает timeout аргумент, так что это должно работать:

create_engine('sqlite:///some.db', connect_args={'timeout': 15}) 
+0

Большое спасибо. Это то, чего я пропустил. – user1817188

+8

В случае, если кто-то пытается решить ту же проблему для PostgreSQL 9.3, аргумент connect_args будет пишется по-разному: connect_args = {'connect_timeout': 15} –

 Смежные вопросы

  • Нет связанных вопросов^_^