質問: postgresqlがpgadminを使用してpg_restore中にエラーを取得するpg_restore:[アーカイバ(db)]はクエリを実行できませんでした:エラー:ロールが存在しません 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ロールを参照することもできます。