DbCharmer已經暫停
在過去的2年(同時試圖讓DbCharmer使用Rails 4.0兼容),它已成爲越來越明顯,我只是不想再這樣下去了。我不需要DbCharmer來支持Rails 4.0+,但很顯然很多用戶都需要它,並且不斷地在問題和郵件列表中嘮叨,要求更新會對我產生很多焦慮,焦慮我不能做太多關於(最糟糕的一種)。結果,因爲我根本沒有看到有任何好的理由繼續對抗這場艱苦的戰鬥(而開發這樣的ActiveRecord這樣的東西是一場不斷的戰鬥!)我正式放棄。 read more
馬卡拉可能是一種替代方法:github.com/taskrabbit/makara
原來的答覆
據我所知,Rails不提供此功能的開箱。不過,我發現了一種名爲db-charmer的寶石,它似乎與您正在尋找的東西非常接近。
這裏是最好的部分(每查詢連接管理):
有時候,你有,你知道你要在主運行SELECT查詢。這可能會發生,例如,當您剛剛添加了一些數據,並且需要將其讀回來,並且不確定它是否完成了對奴隸的所有操作。對於這種情況,和其他幾個人有一組,我們已經加入的ActiveRecord模型的方法:
User.on_master.find_by_activation_code(code)
on_slave - 要運行該方法用於力查詢即使在之前被迫使用主設備的情況下也是從設備。如果有多個奴隸,則隨機選擇一個奴隸。這個方法也有兩種形式:block和proxy。
on_db(連接) - 該方法使前面兩個方法成爲可能。它用於將模型的連接切換到某個數據庫以獲取一小段代碼甚至一條語句(兩種形式)。它接受與switch_connection_to方法相同的值範圍。例如:
Comment.on_db(:olap).count
Post.on_db(:foo).find(:first)
db-charmer已經退役。 – 2017-12-28 04:22:24