如何執行從Rails應用程序到MySQL數據庫的SQL查詢?如何從沒有模型的Rails應用程序中查詢MySQL數據庫?
我的應用程序使用Postgres作爲主數據庫,但我需要從輔助MySQL數據庫讀取一些信息。我無法創建模型,因爲MySQL數據庫有超過100個表,每個表以不兼容的方式命名。沒有ActiveRecord或其他方式可以完成嗎?
如何執行從Rails應用程序到MySQL數據庫的SQL查詢?如何從沒有模型的Rails應用程序中查詢MySQL數據庫?
我的應用程序使用Postgres作爲主數據庫,但我需要從輔助MySQL數據庫讀取一些信息。我無法創建模型,因爲MySQL數據庫有超過100個表,每個表以不兼容的方式命名。沒有ActiveRecord或其他方式可以完成嗎?
您可以直接使用mysql2 gem。在這裏閱讀文檔: https://github.com/brianmario/mysql2
或者:
您可以創建這樣一個新的類象的MySqlConnection:
class MysqlConnection < ActiveRecord::Base
self.establish_connection(:adapter => 'mysql', :database => 'some-database-name') # Set all the other required params like host, user-name, etc
end
從現在起,你可以做,
MysqlConnection.connection.select_all("SELECT * FROM table_name")
按照鏈接瞭解如何在database.yml中存儲配置詳細信息:http://weare.buildingsky.net/2006/12/06/multiple-concurrent-database-connections-with-activerecord
謝謝你的回答!這對我來說是最好的解決方案。 – Alve
Rails支持使用'set_table_name「foo」'爲特定模型強制強制表名。如果表的數量是靜態的,並且很可能你會使用它們,我會開始按照他們需要的順序創建模型。 AR:Base中也支持指定主鍵字段。 – Nick