1

在我的 Rails 应用程序中,我需要在应用程序中使用多个数据库。但是我怎么能告诉rails,这个表必须来自这个数据库,另一个 - 来自另一个。我正在使用mysql。现在配置看起来像这样:

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: Mycorp_development
  pool: 5
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock

和一个模型(我知道那不是在 rails-way,但 db 不是我的)

class Article < ActiveRecord::Base
  attr_accessible :ART_ID, :ART_ARTICLE_NR,  :ART_SUP_ID,  :ART_DES_ID,  :ART_COMPLETE_DES_ID, :ART_CTM, :ART_PACK_SELFSERVICE,  :ART_MATERIAL_MARK, :ART_REPLACEMENT, :ART_ACCESSORY, :ART_BATCH_SIZE1, :ART_BATCH_SIZE2, :QUANTITYM, :PRICEM
  set_table_name "ARTICLES"
  set_primary_key :ART_ID
end
4

1 回答 1

1

ActiveRecord 尚未与两个不同的数据库进行通信。

当然https://github.com/cherring/connection_ninja似乎提供了一种解决方法,我还没有测试过,但我会非常小心地使用它。

您将自己置于开发人员未计划的情况下,这意味着您可能会遇到一些问题,并且必须深入研究 AR 内部以了解发生了什么。

鉴于您确实需要处理两个数据库,我强烈建议您考虑这两种都支持开箱即用的多个数据库的替代方案:

它们与 Rails 3 配合得很好。

于 2012-10-02T15:19:21.363 回答