0

私の場合、完全なデータベースにバックアップファイルがあります。publicここで、スキーマ内の特定のテーブルを復元したいと考えています。

これらのテーブルは、既に別のスキーマに格納されています。実現可能な解決策はありますか?とその方法

4

1 に答える 1

1

復元したいテーブルがスキーマ "public" からバックアップされたものなのか、それとも別のスキーマからバックアップされたものなのかが明確ではありません。

バックアップがプレーン テキスト形式ではなくアーカイブ形式である場合、個々のテーブルを復元できます ( および pg_restore のオプションを参照し-nください-t) 。私の知る限り、それらを別のスキーマに復元することはできません。代わりに、それらを元のスキーマに復元してから、各テーブルを.ALTER TABLE table_name SET SCHEMA new_schema;

ターゲット スキーマに同じ名前のテーブルが既にあるため、バックアップから復元する前に名前を変更する必要があると思います。バックアップから復元し、復元されたテーブルをスキーマ "パブリック" に移動した後、それらのテーブルの名前を元の名前に変更できます。PostgreSQL は、public.table_name と new_schema.table_name が異なるテーブルであることを認識しています。

于 2013-05-08T11:56:57.197 に答える