Railsガイドに載っている情報ではあるのですが、僕自身がマルチDBの経験少ないのでアウトプットとしてメモ残しておきます。
https://railsguides.jp/active_record_multiple_databases.html#コネクションを手動で切り替える
手動で切り替える方法
ActiveRecord::Base.connected_to(role: :reading) do # このブロック内のコードはすべてreadingロールで接続される end
connected_to
メソッドが提供されていて、DBのコネクションを切り替えられる。
role
を指定するとコネクション先を指定できる。
確実に読み取り専用にするには prevent_writes: true
を指定する。
ActiveRecord::Base.connected_to(role: :reading, prevent_writes: true) do # Railsは読み取りクエリであることをクエリごとに確認する end
preventが防ぐ
って意味なのでそのままですね。