2
有什麼可以爲Rails 3中的ActiveRecord模型指定不同的模式?以下用於在Rails 2中工作:Rails 3和MySQL中的多個數據庫模式
class Company < ActiveRecord::Base
set_table_name "hr.company"
end
這在Rails 3中失敗,並帶有消息Table myapp.hr.company doesn't exist
。
的簡單模型下面的工作:
class Company < ActiveRecord::Base
establish_connection "hr"
set_table_name "company"
end
這種方法的問題是雙重的:第一,Rails的創建這個模型單獨的數據庫連接,堂堂一個額外的開銷。第二,所有的查詢調用現在在這方面的背景下,這意味着任何聯接回myapp
模式將打破:
class Company < ActiveRecord::Base
establish_connection "hr"
set_table_name "company"
has_many :widgets # widgets table resides in myapp schema
end
這反過來將失敗,Table hr.widgets doesn't exist
。
那麼,有沒有什麼辦法可以在Rails 3中實現這一點?
只是爲了澄清...你只是想暫時改變表名或永久改變表名嗎? – Msencenb 2011-06-16 17:10:28
永久性的,如同在這個模型中始終使用合格的表名。 – pazustep 2011-06-16 18:36:19