Ruby on rails 如何进行rails外部数据库调用?
因此,我希望能够向我的Ruby on rails 如何进行rails外部数据库调用?,ruby-on-rails,database,Ruby On Rails,Database,因此,我希望能够向我的config/database.yml中添加一个外部数据库,然后从中创建一个表 这可能吗?我还不知道怎么做 “连接到不同型号的多个数据库 连接通常通过ActiveRecord::Base创建。建立连接并通过ActiveRecord::Base.connection检索。从ActiveRecord::Base继承的所有类都将使用此连接。但您也可以设置特定于类的连接。例如,如果Course是ActiveRecord::Base,但它位于不同的数据库中,您可以说是课程。建立连接和
config/database.yml
中添加一个外部数据库,然后从中创建一个表
这可能吗?我还不知道怎么做
“连接到不同型号的多个数据库
连接通常通过ActiveRecord::Base创建。建立连接并通过ActiveRecord::Base.connection
检索。从ActiveRecord::Base
继承的所有类都将使用此连接。但您也可以设置特定于类的连接。例如,如果Course
是ActiveRecord::Base
,但它位于不同的数据库中,您可以说是课程。建立连接
和课程
,它的所有子类都将使用此连接
此功能是通过在ActiveRecord::Base
中保留一个连接池来实现的,该连接池是由类索引的哈希。如果请求连接,则retrieve\u连接方法将沿着类层次结构向上移动,直到在连接池中找到连接为止。“首先,在database.yml中定义连接信息:
my_external_db:
adapter: mysql
username: ...
....
然后,创建模型并将其连接到外部数据库
class MyExternalModel < ActiveRecord::Base
establish_connection(:my_external_db)
set_table_name 'my_external_table'
end
类MyExternalModel
set\u table\u name
被删除,因此,您应该使用:self.table\u name
之后我是否必须关闭连接?@Kirby:我想您不想这样做,否则rails必须为每个请求打开一个新连接。在这里,服务器启动时只执行一次。非常感谢!我正在尝试将rails应用程序连接到外部数据库。非常有用。如果使用Heroku,请小心。Heroku丢弃了database.yml文件,因此您必须找到其他地方来定义连接信息。