Postgres教程:pg_restore:[archiver]输入文件似乎不是有效的存档

问题描述 投票:7回答:2

我正在通过Postgres DVD tutorial工作并遇到导入其示例数据库的问题。

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。

postgresql tar pg-restore postgresql-9.5
2个回答
9
投票

根据上述评论,解决方案很简单。

根据教程说明中的建议,不需要将dvdrental.zip文件解压缩到未压缩的.tar文件。 pg_restore will work如果指向提取数据库转储的目录:

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


0
投票

尝试了几个小时后,对我来说是下面的命令。从PgAdmin 4开始,它很难处理。

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

只需将zip解压缩到一个文件夹中,然后在我的Mac OS中使用这些选项执行pg_restore命令,其中/pg-db/dvdrental/是zip解压缩目录。

© www.soinside.com 2019 - 2024. All rights reserved.