同じデータベースの 2 つのバージョンがあります。1 つは現在のもので、もう 1 つはバックアップから復元されたものです。ここで、それらをマージして、基本的にデータをバックアップから現在のデータベースに移動し、異なるテーブル間の関係を維持する必要があります。
これを達成するのに役立つツールはありますか?
同じデータベースの 2 つのバージョンがあります。1 つは現在のもので、もう 1 つはバックアップから復元されたものです。ここで、それらをマージして、基本的にデータをバックアップから現在のデータベースに移動し、異なるテーブル間の関係を維持する必要があります。
これを達成するのに役立つツールはありますか?
Rubyrep は、postgresql および mysql 用のトリガー ベースの非同期レプリケーション システムです。しかし、その機能の 1 つに「同期」コマンドがあり、テーブルをスキャンして相違点を探し、それらをマージしようとします。通常、最初に sync を使用し、その後、replicate を使用して 2 つのデータベースの同期を維持しますが、「sync」コマンドだけを使用できない理由はありません。
主キーを使用してデータを比較すると思うので、スキーマによっては、うまくいく場合とうまくいかない場合があります。最初にデータのバックアップを作成することをお勧めします。
同じ主キーを持つレコードをマージすると思います。どちらが勝ったかはわかります。しかし、マージしてはならない同じ主キーを持つ 2 つのレコードがある場合、問題が発生すると思います。
それでも、あなたがそれを助けるなら、それはうまくいくかもしれません。たとえば、「username」は「id」ではなく主キーです。または、データが重複していない場合は、事前にシリアル主キーを手動で調整してください。