2011-10-22 12 views
10

मैं क्रोमियम साइट डेटा (~/.config/क्रोमियम/डिफ़ॉल्ट में) को पायथन-स्क्लाइट 3 के साथ खोलना चाहता हूं लेकिन क्रोमियम चलने पर इसे लॉक कर दिया जाता है, जो लेनदेन किए जाने के बाद समझ में आता है। क्या इसे केवल पढ़ने के लिए मोड में खोलने का कोई तरीका है, यह सुनिश्चित करना कि क्रोमियम इसका उपयोग कर रहा है, जबकि मैं डीबी की अखंडता को दूषित नहीं कर सकता?क्या केवल लॉक स्क्लाइट डेटाबेस को पढ़ने के लिए मोड में खोलना संभव है?

उत्तर

7

मेरा मानना ​​है कि यह लेनदेन द्वारा लॉक सेट पर निर्भर करता है।

http://www.sqlite.org/lockingv3.html#shared_lock http://www.sqlite.org/lang_transaction.html

SQLite अनन्य लेन-देन बंद कर दोनों पढ़ने और लिखने में जहां तत्काल और आस्थगित लेनदेन अभी भी पाठकों की अनुमति देगा।

तो यह वास्तव में क्रोमियम द्वारा उपयोग किए गए लेनदेन पर निर्भर करता है।

+0

+1: यह _within_ SQLite कैसे करें। –

3

क्रोमियम लंबे समय तक डेटाबेस लॉक रख रहा है? नीरस यह वास्तव में एक बहुत अच्छा विचार नहीं है। फिर भी, नहीं अपने गलती ...

तुम बस (सिस्टम उपयोगिता cp साथ उदाहरण के लिए,) डेटाबेस फ़ाइल को कॉपी करने और उद्देश्यों को पढ़ने के लिए है कि स्नैपशॉट का उपयोग कर की कोशिश कर सकते; SQLite अपने सभी प्रतिबद्ध राज्य को प्रति डेटाबेस एक फ़ाइल में रखता है। हां, आंशिक लेनदेन देखने का एक मौका है, लेकिन आपको निश्चित रूप से यूनिक्स पर लॉक समस्या नहीं होगी क्योंकि SQLite निश्चित रूप से अनिवार्य ताले का उपयोग नहीं करता है। (यह अलग लॉकिंग योजना के कारण विंडोज पर काम नहीं कर सकता है।)

+2

यह क्रोमियम की गलती नहीं है। चारों ओर घूमते हुए, मैंने पाया [यह] (http://mail.python.org/pipermail/python-list/2009-July/1211171.html) सहायक संदेश जो इंगित करता है कि pysqlite लाइब्रेरी सभी को इंटरफ़ेस प्रदान नहीं करती है एसक्लाइट की विशेषताओं के कारण यह डीबी-एपीआई अनुरूप है। तो यह हो सकता है कि जब मैं pysqlite के साथ डीबी खोलता हूं, तो मैं पढ़ने-लिखने के तरीके में बिना कहने ऐसा कर रहा हूं। उन्होंने कनेक्शन शुरू करते समय SQLITE_OPEN_READONLY ध्वज का उपयोग करने के लिए एपीएसडब्ल्यू की ओर इशारा किया। मैं इसे अभी देख लूंगा। – ladaghini

संबंधित मुद्दे