2016-05-01 10 views
0

私は2つのPostgresデータベースを持っています.1つはoldnewです。タクトに(oldから移行されていますし、当然のデータ)newでの既存のデータを保持したままPostgres新しいデータベースにデータを移行する

にはどうすればnewoldからデータを移動するのですか?また、古いテーブル名から新しいテーブル名にマッピングを追加する場合はどうすればよいですか?

本当に必要な場合は、両方のデータベースをオフラインにすることも可能です。

答えて

1

--dataのオプションをpg_dumpに設定してください。これにより、テーブルを削除または再作成したり、既存のデータを上書きしたりしないダンプが生成されます。

何かのように:あなたは、重要なデータを持っている場合、私はこれを使用して非常に慎重になるだろう

psql database_name << dump.sql

pg_dump --data database_name > dump.sql

これは、のようなものを使用してデータベースに復元することができます"新しい"と私は私がそれを台無しにした場合、私は新しいデータベースのダンプを持っていた(スキーマが含まれて、だけでなくデータ)を確認したいと思います。

:あなたは、レールでこれをタグ付けされたので、このアプローチは、一意性の検証など、あなたが持っている任意のActiveRecordの検証を(バイパスすることに注意して、など

+0

私は古い表からのマッピングを追加したい場合はどのようなありがとう!新しいテーブル名への名前の変更?この要件を反映する元の質問の編集 – Baub

+0

これを行う最も簡単な方法は、元のダンプをテキストエディタに読み込んで手作業でテーブル名を編集することです。する必要があります - 実際にスクリプトを使用してデータを転送する必要があることもあります。 –