开发者

how to make rails external database calls?

开发者 https://www.devze.com 2023-02-05 22:03 出处:网络
So i\'d like to be able to add an external database to my config/database.ymlThen model one table from it.

So i'd like to be able to add an external database to my config/database.yml Then model one table from it.

Is this possible? I haven't been able to figure out how.

"Connection to multiple databases in different models

Connections are usually created through ActiveRecord::Base.establish_connection and retrieved by ActiveRecord::Base.connection. All classes inheriting from ActiveRecord::Base will use this connection. But you can also set a class-specific connection. For example, if Course is an ActiveRecord::Base, but resides in a different database, you can just say Course.establish_connection and Course and all of its subclasses will use this connection instead.

This feature is implemented by keeping a connection pool in ActiveRecord::Base that is a Hash indexed by the class. If a connection is requested, the retrieve_con开发者_高级运维nection method will go up the class-hierarchy until a connection is found in the connection pool. "


First, define the connection information in database.yml:

my_external_db:
  adapter: mysql
  username: ...
  ....

Then, create the model and connect it to the external db

class MyExternalModel < ActiveRecord::Base
  establish_connection(:my_external_db)
  set_table_name 'my_external_table'
end


set_table_name is removed, so instead, you should use: self.table_name

0

精彩评论

暂无评论...
验证码 换一张
取 消