
Debian 10 で Postgres 12 を使用して復元する前に、pg_restore でデータベースを作成したい
私は試した
PG_COLOR=auto
PGHOST=localhost
PGPASSWORD=mypass
PGUSER=postgres
export PGHOST PGPASSWORD PG_COLOR PGUSER
pg_restore --clean --create --if-exists --dbname=mydb --jobs=4 --verbose "mydb.backup"
しかしエラーが発生しました
pg_restore: 復元のためにデータベースに接続しています pg_restore: エラー: データベース「mydb」への接続に失敗しました: 致命的: データベース「mydb」が存在しません
復元前にデータベースを作成するにはどうすればいいですか?
Debian 10 で Postgres 12 を使用する
答え1
pg_restoreはドキュメンテーションこのエラーについて説明します。
-C --作成
復元する前にデータベースを作成してください。--clean も指定されている場合は、接続する前にターゲット データベースを削除して再作成してください。
--create を使用すると、pg_restore は、データベースのコメント (存在する場合) と、このデータベースに固有の構成変数設定 (つまり、このデータベースを参照する ALTER DATABASE ... SET ... および ALTER ROLE ... IN DATABASE ... SET ... コマンド) も復元します。--no-acl が指定されていない限り、データベース自体のアクセス権限も復元されます。
このオプションを使用すると、-dで指定されたデータベースは、最初のDROP DATABASEおよびCREATE DATABASEコマンドを発行するためにのみ使用されます。すべてのデータは、アーカイブに表示されるデータベース名に復元されます。
-d
たとえば、-d postgres
またはを使用して、既存のデータベースを に渡す必要があります-d template1
。また、バックアップにはCREATE DATABASE
コマンドが含まれている必要があることに注意してください。このコマンドの存在は、 で使用される引数によって異なりますpg_dump
。