2013-02-25 5 views
6

J'utilise sqlite (v2.6.0) comme backend de base de données et en utilisant sqlalchemy (v0.7.9) pour le faire fonctionner. Récemment j'ai eu une erreur OperationalError: (OperationalError) database is lockedComment augmenter le délai de connexion en utilisant sqlalchemy avec sqlite en python

En recherchant stackoverflow une solution possible est d'augmenter le délai d'une connexion. Referece: OperationalError: database is locked

Mais je ne sais pas comment est-ce que dans sqlalchemy (depuis la connexion sont effectivement contrôlées par elle) quelqu'un peut me donner une direction?

+1

FWIW, ce qui augmente le délai d'attente est probable que va faire cette erreur moins fréquentes. il est préférable de mettre en œuvre des tentatives. –

Répondre

13

create_engine() de SQLAlchemy prend un argument connect_args qui est un dictionnaire qui sera transmis à connect() du DBAPI sous-jacente (voir Custom DBAPI connect() arguments). sqlite3.connect() accepte l'argument timeout, donc cela devrait fonctionner:

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

Merci beaucoup. C'est juste ce que j'ai manqué. – user1817188

+8

Au cas où quelqu'un tenterait de résoudre le même problème pour PostgreSQL 9.3, l'argument connect_args serait orthographié différemment: connect_args = {'connect_timeout': 15} –

Questions connexes