2009-04-28 36 views
3

我有一個rails應用程序,使用兩個相同的模型作爲另一個rails應用程序。保持兩個模型之間數據同步的最佳方式是什麼?保持表跨Syils跨Rails應用程序沒有SQL複製?

MySQL複製可能由於託管限制而無法實現,因爲引用複製數據的內容依賴於=>:destroy意味着mysql複製將導致指向被複制的數據被刪除以保留的內容。

簡而言之,在應用程序級別的基於每個模型的兩個rails應用程序之間進行復制的最佳方式是什麼?我將不得不使用REST破解我自己的複製,還是有更好的方法?

我應該添加數據更改很少,一天最多幾次,並且該集合總是少於50k行。

編輯:爲了迴應Toby的評論,數據都是單向的。

+1

這兩個應用程序正在更新?如同,您是否需要同時以兩種方式同步數據,或者您是否可以從主設備上進行同步? – 2009-04-29 10:16:14

回答

0

所以,原來有兩個插件,這樣做:

Acts as ReplicaActs as Syncable

充當副本似乎有更好的文檔。然而,考慮到它的複雜性,我認爲對於我自己的需求,我會推出自己的產品,雖然不完美對於我自己的用例來說會簡單得多。

我複製表中的所有數據都是從XML文件中挑選出來的。由於隱私原因,XML無法完全發送到服務器進行復制(我只在這兩個應用程序中使用子集,但額外的數據是敏感的),所以我打算將REST接口與數據I需要並複製它。

0

這不是一個具體的答案,但考慮某種排隊機制。應用程序A進行更改並寫入隊列和數據庫。 「隊列」可能是數據庫中的一個表格,其中顯示「應用程序A更改了ID爲I的Model M」。這兩個應用程序都可以擁有一個輪詢此表並應用更改的進程。

你會遇到麻煩的地方是雙方修改同一個對象。