3

同じデータベースの 2 つのバージョンがあります。1 つは現在のもので、もう 1 つはバックアップから復元されたものです。ここで、それらをマージして、基本的にデータをバックアップから現在のデータベースに移動し、異なるテーブル間の関係を維持する必要があります。

これを達成するのに役立つツールはありますか?

4

1 に答える 1

3

Rubyrepには、必要なことができる同期機能があります。

Rubyrep は、postgresql および mysql 用のトリガー ベースの非同期レプリケーション システムです。しかし、その機能の 1 つに「同期」コマンドがあり、テーブルをスキャンして相違点を探し、それらをマージしようとします。通常、最初に sync を使用し、その後、replicate を使用して 2 つのデータベースの同期を維持しますが、「sync」コマンドだけを使用できない理由はありません。

主キーを使用してデータを比較すると思うので、スキーマによっては、うまくいく場合とうまくいかない場合があります。最初にデータのバックアップを作成することをお勧めします。

同じ主キーを持つレコードをマージすると思います。どちらが勝ったかはわかります。しかし、マージしてはならない同じ主キーを持つ 2 つのレコードがある場合、問題が発生すると思います。

それでも、あなたがそれを助けるなら、それはうまくいくかもしれません。たとえば、「username」は「id」ではなく主キーです。または、データが重複していない場合は、事前にシリアル主キーを手動で調整してください。

于 2012-06-14T04:54:56.927 に答える