結論
任意の名前のモデルを作成し、establish_connection
と self.table_name
を用いる。
具体例
例えば、外部のデータベースの接続情報が以下の通りであるとします。これは config/database.yml
に書いておきます。
external_my_db: adapter: postgresql encoding: unicode pool: 5 database: hogehoge_foobar host: 123.123.123.123 port: 12345 username: i_am_a_user password: this_is_a_password
上記のデータベースの例えば books
というテーブルをモデルとして組み込むには、以下のように書きます。
このファイルを置く場所は app/models/book_by_external_db.rb
です。
class BookByExternalDb< ApplicationRecord establish_connection :external_my_db self.table_name = :books end
これで、Rails で BookByExternalDb
というモデル名で外部DBの books
テーブルを扱うことができます。アソシエーションなどは適宜追加しましょう。