私はRails3アプリを持っています-それはさまざまなプロジェクトについて研究するためのインターフェースです。研究者が誤ってダフデータをユーザーサイトに入れてほしくないのでdataentry
、研究者が使用する環境production
とユーザー向けの環境を使用してアプリケーションを分離しました。研究者は新しいデータをdataentry
データベースに入れ、それを編集者がチェックしてサインオフします。データは30を超えるモデルにまたがっており、さまざまなbelongs_to
関連has_many
性があります。
私がやりたいのは、データをデータ入力環境からライブ環境に定期的に移動する方法を見つけることです。ライブサイトにサインアップした新しいユーザーからのサブスクリプションなどを失いたくないので、production
データベースをゴミ箱に捨てて毎回ダンプしたくありません。dataentry
環境間でデータを移行するために私が見たソリューションのほとんどは、a)YAMLなどにデータをダンプするか、b)テーブル全体をRubyアレイにロードし、データベース接続を切り替えeach
、アレイ上でループを実行してロードすることを含みます。テーブルが非常に大きい場合、どちらのアプローチも最適ではないように見えます。
私は(おそらく)mysqldump
すべての関連するテーブルからdataentry
結果をパイプで送ることができましmysql production
たが、それは鈍器のように見えます。
Railsでこの種の「データステージング」を管理するためのベストプラクティスはありますか?