2013-02-25 6 views
6

में एसक्लाइट के साथ एसक्लाल्केमी का उपयोग करके कनेक्शन टाइमआउट कैसे बढ़ाएं मैं डेटाबेस बैकएंड के रूप में एसक्लाइट (v2.6.0) का उपयोग कर रहा हूं और इसे संचालित करने के लिए स्क्लेल्चेमी (v0.7.9) का उपयोग कर रहा हूं। हाल ही में मुझे एक त्रुटि मिली OperationalError: (OperationalError) database is lockedपायथन

स्टैक ओवरफ्लो खोजकर एक संभावित समाधान कनेक्शन के टाइमआउट को बढ़ाने के लिए है। संदर्भ के: OperationalError: database is locked

लेकिन मैं नहीं जानता कि कैसे था कि SQLAlchemy में (कनेक्शन के बाद से वास्तव में यह द्वारा नियंत्रित कर रहे) को किसी ने मुझे एक दिशा दे सकते हैं?

+1

fwiw, टाइमआउट बढ़ती संभावना केवल इस त्रुटि लगातार कम करने के लिए जा रहा है। रीट्रीज़ को लागू करना बेहतर है। –

उत्तर

13

SQLAlchemy के create_engine() एक तर्क connect_args जो एक शब्दकोश कि अंतर्निहित DBAPI की connect() (Custom DBAPI connect() arguments देखें) को दे दिया जाएगा है लेता है। sqlite3.connect()timeout तर्क को स्वीकार करता है, तो यह काम करना चाहिए:

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

बहुत बहुत धन्यवाद। यही वह है जो मुझे याद आया। – user1817188

+8

यदि कोई पोस्टग्रेएसक्यूएल 9.3 के लिए एक ही समस्या को हल करने का प्रयास कर रहा है, तो कनेक्ट_र्ग्स तर्क अलग-अलग लिखा जाएगा: connect_args = {'connect_timeout': 15} –