web-dev-qa-db-ja.com

Postgresチュートリアル:pg_restore:[archiver]入力ファイルが有効なアーカイブではないようです

Postgres DVDチュートリアル で作業していて、サンプルデータベースのインポートで問題が発生しています。

pg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tar.gzを実行すると、pg_restore: [archiver] input file does not appear to be a valid archiveが得られます。

これまでの私のプロセスは次のとおりです。

  1. dvdrental.Zip ファイルをダウンロードします
  2. tar czf dvd-database.tar.gz dvdrental.Zipを使用して.tarに抽出します(Zipを最初にフォルダーに抽出して同じ結果を得て、.gzもドロップしてみました)
  3. 上記のpg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tarを実行します。

現在Postgres 9.5を使用しているため、問題が発生している可能性があります。このプロセスのどこが間違っているのか、またはPostgresデータベースのアーカイブを9.5に更新する方法を指摘する回答を探しています。

10
Charlie Weems

上記のコメントによると、解決策は簡単でした。

チュートリアルの指示で提案されているように、dvdrental.Zipファイルを圧縮されていない.tarに抽出する必要はありません。 pg_restore動作します データベースダンプが抽出されたディレクトリをポイントしている場合:

pg_restore -U <username> -d dvdrental <your/path/to/extracted/dir>/dvdrental

10
Charlie Weems

私のために働いた時間を試した後、以下のコマンドです。 PgAdmin 4以降では、操作が非常に困難です。

/Library/PostgreSQL/10/bin/pg_restore -U postgres -p 5433  -d dvdrental /pg-db/dvdrental/

Zipをフォルダーに抽出し、pg_restoreこれらのオプションを使用したコマンド、私の場合Mac OSの場合/pg-db/dvdrental/は、Zipで抽出されたディレクトリです。

0
Krishnadas PC