2017-04-25 95 views
2

2つのホストサーバーs1とs2があります。両方のサーバーで、私はs1のスキーマn1に存在するいくつかのテーブルにいくつかの変更を加えました。私は同じ変更をサーバーs2のスキーマn1に対して実行したい。私がやろうとしていることは、pg_dumpを使ってサーバs1のスキーマn1をバックアップし、pg_restoreを使ってサーバs2にリストアすることです。今私の質問は、同じテーブルのセットを持つサーバーs2にはすでに同じスキーマn1があるからです。復元プロセスは何をしますか?それは既存のテーブルを上書きするか、サーバs2の既存のスキーマを削除し、サーバs1からのダンプを使用してリストアする必要がありますか?pg_restoreは既存のテーブルを上書きしますか?

+0

復元前にオブジェクトを削除する場合は、pg_resotreの--cleanオプションを試してください。 https://www.postgresql.org/docs/current/static/app-pgrestore.html – Jayadevan

答えて

6

--cleanオプションをpg_restoreにすると、新しいテーブルが作成される前に古いテーブルが削除されます。

--cleanオプションを使用しないと、オプションを使用しない限り、pg_restoreはテーブルが既に存在するというエラーメッセージが表示されます。

+0

--cleanオプションは既に存在するテーブルだけを削除しますか?またはすべてのテーブルが存在しますか?私は、既存のスキーマ内にいくつかの追加のテーブルがあるとしますが、そのように保持されるのでしょうか? – Karthik

+1

復元しようとしているテーブルのみが削除されます。他のテーブルはそのまま残されます。 –

+0

あなたの助けに感謝:) – Karthik

関連する問題