2009-04-28 2 views
3

私には別のレールアプリと同じモデルの2つを使用するレールアプリがあります。 2つのモデル間でデータを同期させる最良の方法は何ですか?SQLレプリケーションを使わずにRailsアプリケーション間でテーブルを同期させるには?

MySQLのレプリケーションはおそらくホスティングの制限のためにできないでしょう。レプリケートされたデータを参照するものは依存しているので、> destroy:mysqlのレプリケーションは、レプリケートされたデータが残っていることを示します。

要するに、モデルごとに、アプリケーションレベルで2つのレールアプリ間で複製を行う最良の方法は何ですか? RESTを使用して自分の複製をハックする必要があるのですか、それとも良い方法がありますか?

データを頻繁に変更することはほとんどありません。たいていは1日に数回です。セットは常に50k行未満です。

編集:以下のTobyのコメントに応じて、データはすべて片方向になります。

+1

両方のアプリケーションが更新されていますか?のように、両方の方法でデータを同期する必要がありますか、マスターからプッシュできますか? –

+0

それはタフなものです、私はあなたが答えを得ることを願って、これは私にも興味があります。 – marcgg

答えて

0

だから、それがこれを行う2つのプラグインがある判明します。

しかし、私は自分自身の必要性を考えています。私は自分自身をロールバックするつもりですが、完璧ではないということは自分のユースケースではもっと簡単になります。

レプリケートされたテーブルのすべてのデータは、XMLファイルから単純に抽出されます。 XMLはプライバシー上の理由から複製されるサーバーに完全に送信することはできません(私は両方のアプリケーションでサブセットのみを使用しますが、余分なデータは機密です)ので、データIを使用してRESTインターフェイスを公開しますそれを必要とし、複製する。

0

これは具体的な回答ではありませんが、何らかのキューイングメカニズムを考慮しています。アプリケーションAは変更を加えて、キューとデータベースの両方に書き込みます。 「キュー」は、データベース内の「App A Mod id M with id I」という表である可能性があります。両方のアプリはこのテーブルをポーリングして変更を適用するプロセスを持つことができます。

問題が発生するのは、両側が同じオブジェクトを変更する場合です。

Acts as ReplicaActs as Syncable

行為 レプリカがより良いドキュメントを持っていると思われるよう: