2010-05-06 60 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') 

或諸如此類的一個。

Sequel :: Database類沒有公開的實例方法,稱爲「disconnect」,雖然它有一個「連接」。

也許有人已經遇到過這個問題。我會很感激任何想法。

+0

這不工作:http://sequel.rubyforge.org/rdoc/classes/Sequel/Database.html#M000332 「斷開」方法是類方法BTW是不合邏輯的。 – 2010-05-06 18:38:26

+0

它的工作原理,但它斷開所有建立的連接,而不是一個,雖然該方法是公共實例種類 – mcmlxxxiii 2010-05-06 18:44:10

+0

你是對的,我的意思是公共實例方法。糾正。謝謝 – mcmlxxxiii 2010-05-06 18:45:20

回答

12

至於姆拉登Jablanović指出的那樣,你可以做:

DB.disconnect 

這將斷開所有在續集::數據庫實例的連接池的可用連接。你不能選擇一個特定的連接來斷開連接,這是沒有意義的。儘管如此,分片連接池支持斷開特定分片的所有連接。

+0

當你告訴我沒有意義時,我開始懷疑我理解連接池是否正確。以下代碼假定多個模塊可以同時使用來自數據庫哈希的特定連接: [[[DB = {}; DB [:a] Sequel.postgres('a',opts); DB [:b] Sequel.postgres('b',opts); DB [:c] Sequel.postgres('c',opts)]]]。 該任務是斷開所有DB [:a]連接,實際上是釋放特定數據庫。上述方法是否正確?那可能嗎? DB [:a] .disconnect不能按要求工作,或者我誤解了? 順便說一句,非常感謝這個工具包! – mcmlxxxiii 2010-05-08 00:51:47

+0

對不起,我不習慣使用Stackoverflow的方法。示例代碼和說明應該可能在一個問題中(( – mcmlxxxiii 2010-05-08 01:02:20

+1

)你永遠不會選擇一個特定的連接來使用。假設DB [:a]是你的Sequel :: Database,DB [:a] .disconnect將會斷開DB [:a]連接池中的所有可用連接。如果您有更多問題,可以使用您正在使用的代碼在Sequel的Google Group上發佈信息。 – 2010-05-10 16:28:40