Rails で production のデータを development に移す(その逆も)

結論

ModelName.establish_connection を用いて環境を切り替えながらオブジェクトを操作する。

www.rubydoc.info

実例

production モードで $ bin/rails console を起動したとします。そして User.find(123) で得られるデータを development モードの User として記録するものとします。

すると、以下のように操作すればよいことになります。

pry> source_data = User.find(123)
pry> User.establish_connection :development
pry> source_data.dup.save!

dup してから save! している理由は、dup をしないと production で取得したオブジェクトのままになってしまうからです。

補足

同一の Rails プロジェクトでなくても、同一のスキーマであれば別プロジェクトのデータベースを操作することもできます*1

*1:特殊な場合だとは思いますが……

Powered by はてなブログ