2013-02-25 17 views
6

Ben veritabanı arka uç olarak sqlite (v2.6.0) kullanıyorum ve bunu çalıştırmak için sqlalchemy (v0.7.9) kullanarak. Geçtiğimiz günlerde bir hata oluştu OperationalError: (OperationalError) database is lockedPython'da sqlite ile sqlalchemy kullanarak bağlantı zaman aşımı nasıl artırılır

Yığın akışını aratarak olası bir çözüm, bağlantının zaman aşımını artırmaktır. Referece: OperationalError: database is locked

Ama nasıl sqlalchemy içinde (bağlantı beri aslında onun tarafından kontrol edilmektedir) did için bilmiyorum Birisi bana bir yön verebilir misiniz?

+1

FWIW, zaman aşımı artan olasılıkla yalnızca bu hata daha seyrek yapacak. yeniden denemeler uygulamak daha iyidir. –

cevap

13

SQLAlchemy en create_engine() yatan dbapi ait connect() (Custom DBAPI connect() arguments bakınız) geçilecek bir sözlük olan bir argüman connect_args sürer. sqlite3.connect()timeout argüman kabul eder, bu nedenle bu çalışması gerekir:

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

Çok teşekkürler. Bu benim özlediğim şey. – user1817188

+8

Herhangi biri PostgreSQL 9.3 için aynı sorunu çözmeye çalışıyorsa, connect_args argümanı farklı şekilde yazılır: connect_args = {'connect_timeout': 15} –

İlgili konular