次のコマンドを使用して、別のサーバー上のデータベースでバックアップを実行しましたが、必要な役割とは異なります。
pg_dump -Fc db_name -f db_name.dump
次に、データベースを復元する必要がある別のサーバーにバックアップをコピーしましたが、そのデータベースに使用されたそのような所有者はありません。データベースに所有者owner1
がいるとしましょう。しかし、別のサーバーには私だけがいてowner2
、そのデータベースを復元して所有者を変更する必要があります。
復元時に別のサーバーで行ったこと:
createdb -p 5433 -T template0 db_name
pg_restore -p 5433 --role=owner2 -d db_name db_name.dump
しかし、復元を実行すると、次のエラーが発生します。
pg_restore: [archiver (db)] could not execute query: ERROR: role "owner1" does not exist
所有者を変更するように指定するにはどうすればよいですか?それとも不可能ですか?
--no-owner
受け入れ答えで提案されているように、あなたはまた、必要があるかもしれません--no-privileges
。参照してくださいこの回答