2013-02-25 6 views
6

데이터베이스 백엔드로 sqlite (v2.6.0)를 사용하고 sqlalchemy (v0.7.9)를 사용하여 작업하고 있습니다. 최근에 오류가 발생했습니다. OperationalError: (OperationalError) database is lockedpython에서 sqlalchemy를 사용하여 연결 시간 제한을 늘리는 방법

stackoverflow를 검색하면 가능한 한 연결 시간이 초과됩니다. Referece : OperationalError: database is locked

하지만 어떻게 SQLAlchemy의에 (연결 이후 실제로 의해 제어되는) 않은 것을 모르는 누군가가 나에게 방향을 제시 할 수 있습니까?

+1

FWIW는, 제한 시간의 증가는 가능성 만이 오류가 덜 자주 만들 것입니다. 재시도를 구현하는 것이 좋습니다. –

답변

13
는 SQLAlchemy의

create_engine()는 기본 DBAPI의 connect() (Custom DBAPI connect() arguments 참조)로 전달되는 사전을 인수 connect_args 걸린다. 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} –