Pgadminバックアップおよび復元ユーティリティを使用してPostgreSQLのあるスキーマから別のスキーマにデータベースを復元しようとしています。データベースAのバックアップは成功しましたが、これを別のデータベースBに復元しようとすると、次のエラーが発生します。
サンプル:
pg_restore: creating TABLE "public.app_role"
pg_restore: [archiver (db)] Error from TOC entry 227; 1259 197811 TABLE app_role schedule
pg_restore: [archiver (db)] could not execute query: ERROR: role "schedule" does not exist
Command was: ALTER TABLE public.app_role OWNER TO schedule;
所有者を「はい」として保存しない、特権を「はい」などの復元オプションを変更しようとしましたが、それでもうまくいきませんでした。
誰かがこれについて知っているか、以前にこのような問題に直面したことがありますか?
バックアップで参照される役割が必要です。それらを取得するには、次のようにします。
pg_dumpall --globals-only > globals.dump
次に、pg_restore -f globals.dump <database>
これにより、ソースデータベースクラスター上のすべてのロールがダンプされます。
なんらかの理由でそれができない場合は、バックアップファイルを編集して、ターゲットシステムに設定した別のschedule
ロールを参照することもできます。