web-dev-qa-db-ja.com

pg_dumpallバックアップからすべて(「postgres」ロールを含む)を復元する方法

私はpostgres 9.1サーバーを実行していて、

pg_dumpall -c -f /nfs/backup/fulldump.sql

私はバックアップを別のサーバーに復元することをテストしています

psql -f /nfs/backup/fulldump.sql

ユーザーpostgresとして実行中に2つのエラーが発生する

psql:/nfs/backup/fulldump.sql:27: ERROR:  current user cannot be dropped
psql:/nfs/backup/fulldump.sql:36: ERROR:  role "postgres" already exists

これらはコマンドによって引き起こされることを理解しています

DROP ROLE postgres;
CREATE ROLE postgres;

バックアップダンプ。

単一のエラーなしにpg_dumpall -cから何らかの方法でダンプを復元することは可能ですか?

5

私はこれのためにgrepを使用することになりました:

egrep -v '^(CREATE|DROP) ROLE postgres;' dump.sql \
| psql -X -v ON_ERROR_STOP=1 -1 ...
3
11181