如何使rails外部数据库调用?

Kir*_*rby 11 database ruby-on-rails

所以我希望能够config/database.yml 从我的Then模型中添加一个外部数据库.

这可能吗?我一直无法弄清楚如何.

"连接到不同型号的多个数据库

通常通过创建ActiveRecord::Base.establish_connection和检索连接ActiveRecord::Base.connection.继承自的所有类ActiveRecord::Base都将使用此连接.但您也可以设置特定于类的连接.例如,如果CourseActiveRecord::Base,但是驻留在不同的数据库中,您可以说Course.establish_connection,Course并且它的所有子类都将使用此连接.

通过将连接池保持ActiveRecord::Base为由类索引的哈希来实现此功能.如果请求连接,则retrieve_connection方法将上升到类层次结构,直到在连接池中找到连接."

Joh*_*hat 16

首先,在database.yml中定义连接信息:

my_external_db:
  adapter: mysql
  username: ...
  ....
Run Code Online (Sandbox Code Playgroud)

然后,创建模型并将其连接到外部数据库

class MyExternalModel < ActiveRecord::Base
  establish_connection(:my_external_db)
  set_table_name 'my_external_table'
end
Run Code Online (Sandbox Code Playgroud)

  • 使用Heroku时要小心.Heroku抛弃了database.yml文件,所以你必须找到其他地方来定义连接信息. (2认同)