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_connection method will go up the class-hierarchy until a connection is found in the connection pool. "
Ruby on Rails recommends to create three databases - a database each for development, testing, and production environment.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With