2012-12-17 79 views
0

我目前正在使用MySQL數據庫,並且正在考慮將來轉移到Postgres。在我的代碼有:可以將mysql2 gem與Rails中的Postgres數據庫一起使用

client = Mysql2::Client.new(:host => "#{DB_HOST}", :username => "#{DB_USERNAME}", 
:password => "#{DB_PASSWORD}", :database => "#{DB_NAME}") 
sql = "SELECT /*complicated query with joins */ ASC" 
data_setter = client.query(sql) 

我很擔心,如果我移動到Postgres的我將不再能夠使用Mysql2寶石和執行類似於上面的代碼查詢。

任何意見將不勝感激。

+0

他們'mysql2' gem是''一個現代的,簡單而且速度非常快的用於Ruby的Mysql庫 - 綁定到libmysql「'。 **否**,它不適用於Postgres數據庫。 – deefour

回答

2

你可以做同樣的事情,但你必須切換到pg gem,因爲Mysql2只知道如何與MySQL交談。該界面類似於:

db = PG::Connection.new(...) 
sth = db.query('select /* big complicated pile of SQL */') 
sth.each { |row| do_things_with_row(row) } 

一般來說你可以通過ActiveRecord的大部分東西(甚至是原始的SQL查詢),但如果你需要繞過這一切,直接跟數據庫中,然後就可以了。 PostgreSQL可能會遇到一些問題,但並不代表MySQL可能會出現的不合理現象。

+0

非常感謝您的幫助。在過去的四天裏,我一直在嘗試着使用ActiveRecord來實現複雜的連接。我可能需要使用上面的pg gem例子,如果我不能完成它,或者開始另一個問題,請求ActiveRecord的幫助。再次感謝。 – Marklar

+0

我傾向於跳過所有「有用的」ActiveRecord的複雜查詢的東西,並直接去SQL,更容易(至少對我來說)。 –

相關問題