2010-05-06 13 views
5

मैं जो पहले के रूप मेंडेटाबेस में मौजूदा रूबी अनुक्रम कनेक्शन को डिस्कनेक्ट कैसे करें?

DB = Sequel.sqlite('my_blog.db') 

या

DB = Sequel.connect('postgres://user:[email protected]/my_db') 

या

DB = Sequel.postgres('my_db', :user => 'user', :password => 'password', :host => 'localhost') 

या आदि स्थापित किया गया था मतलब है।

सेक्वेल :: डेटाबेस क्लास में "डिस्कनेक्ट" नामक कोई सार्वजनिक उदाहरण विधि नहीं है या फिर भी यह "कनेक्ट" है।

शायद किसी को पहले से ही उस समस्या का सामना करना पड़ा है। मैं किसी भी विचार की सराहना करता हूं।

+0

यह काम नहीं करता है: http://sequel.rubyforge.org/rdoc/classes/Sequel/Database.html#M000332 क्लास विधि बीटीडब्ल्यू होने के लिए 'डिस्कनेक्ट' विधि के लिए तार्किक नहीं है। –

+0

यह काम करता है, लेकिन यह एक के बजाय सभी स्थापित कनेक्शन डिस्कनेक्ट करता है, हालांकि यह विधि सार्वजनिक उदाहरण की तरह है – mcmlxxxiii

+0

आप सही हैं, मेरा मतलब सार्वजनिक उदाहरण विधि है। सही किया। धन्यवाद – mcmlxxxiii

उत्तर

12

म्लादेन Jablanović बताते हैं के रूप में, तुम सिर्फ कर सकते हैं:

DB.disconnect 

कौन सा है कि अगली कड़ी :: डाटाबेस उदाहरण के कनेक्शन पूल में उपलब्ध कनेक्शनों की डिसकनेक्ट हो जाएंगी। आप डिस्कनेक्ट करने के लिए एक विशिष्ट कनेक्शन नहीं चुन सकते हैं, और यह समझ में नहीं आता है। Sharded कनेक्शन पूल, हालांकि, एक विशिष्ट शार्ड के लिए सभी कनेक्शन डिस्कनेक्ट करने का समर्थन करते हैं।

+0

जब आपने बताया कि समझ में नहीं आता है, तो मुझे संदेह करना शुरू हुआ कि मैं कनेक्शन पूल को सही समझता हूं। निम्नलिखित कोड मानते हैं कि एकाधिक मॉड्यूल एक साथ डीबी हैश से विशिष्ट कनेक्शन का उपयोग कर सकते हैं: [[[DB = {}; डीबी [: ए] Sequel.postgres ('ए', opts); डीबी [: बी] Sequel.postgres ('बी', opts); डीबी [: सी] Sequel.postgres ('सी', opts)]]]। कार्य सभी डीबी [: ए] कनेक्शन डिस्कनेक्ट करने में है, वास्तव में विशिष्ट डेटाबेस को जारी करने में। क्या उपर्युक्त दृष्टिकोण सही है? क्या यह संभव है? डीबी [: ए]। डिस्कनेक्ट वांछित के रूप में काम नहीं करता है, या मैं गलत समझता हूँ? बीटीडब्ल्यू, टूलकिट के लिए बहुत धन्यवाद! – mcmlxxxiii

+0

बदसूरत संदेश के लिए खेद है, मैं अभी तक स्टैक ओवरफ्लो के तरीकों से अपरिवर्तित नहीं हूं। उदाहरण कोड और स्पष्टीकरण शायद एक प्रश्न में होना चाहिए (( – mcmlxxxiii

+1

आपको कभी भी उपयोग करने के लिए एक विशिष्ट कनेक्शन चुनने के लिए नहीं मिलता है। मान लीजिए कि डीबी [: ए] आपका सीक्वेल :: डाटाबेस, डीबी [: ए] है। डिस्कनेक्ट होगा डीबी [: ए] कनेक्शन पूल में सभी उपलब्ध कनेक्शन डिस्कनेक्ट करें। यदि आपके पास और प्रश्न हैं, तो आप उस कोड के साथ सेक्वेल के Google समूह पर पोस्ट करना चाह सकते हैं जिसका आप उपयोग कर रहे हैं। –

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