我正在通过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
。
到目前为止,我的流程如下:
tar czf dvd-database.tar.gz dvdrental.zip
将其解压缩到.tar(我还尝试首先将zip解压缩到一个文件夹,结果相同,然后删除.gz)pg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tar
。我目前正在使用Postgres 9.5,这可能会导致问题。寻找答案,指出我在这个过程中出错的地方或如何将Postgres数据库的存档更新到9.5。
根据上述评论,解决方案很简单。
根据教程说明中的建议,不需要将dvdrental.zip文件解压缩到未压缩的.tar文件。 pg_restore
will work如果指向提取数据库转储的目录:
pg_restore -U <username> -d dvdrental <your/path/to/extracted/dir>/dvdrental
尝试了几个小时后,对我来说是下面的命令。从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解压缩目录。