2012-05-02 6 views
3

同じデータベースの2つのバージョンがあります。 1つは現在のもので、もう1つはバックアップからリストアされています。今私はそれらをマージする必要が基本的に異なるテーブル間の関係を維持し、バックアップから現在のデータベースにデータを移動します。2つのデータベースコピーをマージする方法(postgresql)

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

+0

私も答えを探しています。 –

答えて

2

には、あなたが望むことができる同期featureがあります。

Rubyrepは、postgresqlとmysqlのトリガーベースの非同期レプリケーションシステムです。しかし、その機能の1つは "sync"コマンドです。そこでは、テーブルの相違点をスキャンし、相違点を一緒にマージしようとします。通常、まず同期を​​使用してから、レプリケートを使用して2つのデータベースを同期させますが、「同期」コマンドだけを使用することはできません。

私はそれが主キーを使ってデータを比較すると信じています。したがって、スキーマによっては、あなたのために働くかもしれません。おそらく、まずデータのバックアップを作成したいと考えています。

私は、レコードを同じプライマリキーでマージすると思います。あなたはどちら側が勝つかを知ることができます。しかし、マージしてはならない同じプライマリキーを持つレコードが2つある場合、問題が発生すると思います。

まだ助けてもうまくいくかもしれません。あなたはそれを伝えることができるかもしれません。 "username"は "id"ではなくプライマリキーです。また、データが重複していない場合は、手動でシリアル主キーを手動で調整してください。

関連する問題