2012-11-10 29 views
0

我需要定期訪問mysql數據庫,我的主數據存儲區是mongo,我使用mongoid訪問該數據庫。我想知道在不使用活動記錄的情況下管理與mysql連接的最佳方式(使用mysql2 gem - 0.2.7)。如何在rails中管理mysql2連接,而不使用activerecord

我當前執行下列操作...

# In config/initializers/mysql.rb 
class MySqlConnection 

    def self.client 
    @client ||= Mysql2::Client.new(host: ENV['mysql_host'], 
            username: ENV['mysql_username'], 
            password: ENV['mysql_password'], 
            database: ENV['mysql_database']) 
    end 

end 

,然後我用的連接,就像這樣......

rows_q = "SELECT * FROM amaizng_table WHERE great_column = '#{cool_value}' " 
rows = ::MySqlConnection.client.query(rows_q) 

而且一切工作正常 - 但我有一個偷渡懷疑我正在做一些可怕的錯誤,事情會在路上爆炸。

也注意到,應用程序託管在Heroku

任何人都知道,以接近這一點的最好方法是什麼?

謝謝!

喬納森

回答

0

爲什麼,就是爲什麼你會擺脫的ActiveRecord的迷死人(或任何其他ORM,真的)?

class Amazing < ActiveRecord::Base 
    establish_connection :mysql_database 
end 

太簡單了,很痛。有關更多詳細信息,請參閱this

+0

對我來說,這似乎是兩個查詢的矯枉過正 - 但也許它是最好的解決方案 – Jonathan

+0

所有的查詢將被包裹在交易中。您可以將您的憑據放入database.yml中,並使該文件對您的盒子上未經授權的用戶不可讀,這樣更安全。如果您以後需要擴展您的模型,那麼您就很好。 –

相關問題