0

私はRails3アプリを持っています-それはさまざまなプロジェクトについて研究するためのインターフェースです。研究者が誤ってダフデータをユーザーサイトに入れてほしくないのでdataentry、研究者が使用する環境productionとユーザー向けの環境を使用してアプリケーションを分離しました。研究者は新しいデータをdataentryデータベースに入れ、それを編集者がチェックしてサインオフします。データは30を超えるモデルにまたがっており、さまざまなbelongs_to関連has_many性があります。

私がやりたいのは、データをデータ入力環境からライブ環境に定期的に移動する方法を見つけることです。ライブサイトにサインアップした新しいユーザーからのサブスクリプションなどを失いたくないので、productionデータベースをゴミ箱に捨てて毎回ダンプしたくありません。dataentry

環境間でデータを移行するために私が見たソリューションのほとんどは、a)YAMLなどにデータをダンプするか、b)テーブル全体をRubyアレイにロードし、データベース接続を切り替えeach、アレイ上でループを実行してロードすることを含みます。テーブルが非常に大きい場合、どちらのアプローチも最適ではないように見えます。

私は(おそらく)mysqldumpすべての関連するテーブルからdataentry結果をパイプで送ることができましmysql productionたが、それは鈍器のように見えます。

Railsでこの種の「データステージング」を管理するためのベストプラクティスはありますか?

4

1 に答える 1

0

そして、私が最終的に行ったpt-table-syncのはcronジョブでした。

于 2013-04-08T06:37:37.437 に答える