我正在通过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。
到目前为止,我的程序如下:
tar czf dvd-database.tar.gz dvdrental.zip (我还尝试先将zip解压缩到文件夹,结果相同,同时删除.gz)pg_restore -U postgres -d dvdrental ~[filepath]/dvd-database.tar。我目前正在使用Postgres 9.5,这可能是造成问题的原因。寻找一个答案,指出我在这个过程中出了什么问题,或者如何将Postgres数据库的存档更新为9.5。
发布于 2016-02-06 22:04:25
根据上面的评论,解决方案很简单。
按照教程中的建议,将dvdrental.zip文件提取到未压缩的.tar中是不必要的。pg_restore 行得通,如果指向提取数据库转储的目录:
pg_restore -U <username> -d dvdrental <your/path/to/extracted/dir>/dvdrental
发布于 2020-06-07 08:51:53
我的问题是,在安装postgresql时,我为超级用户选择了不同的名称(例如,root,而不是postgres)。dvdrental/restore.sql文件使用postgres角色。因此,要解决这个问题,您需要创建另一个名为postgres的超级用户。
createuser --superuser postgres然后使用角色postgres创建服务器(PosgreSQL),用角色postgres创建db dvdrental。在u可以成功地从解压缩文件夹恢复db之后
发布于 2018-04-29 08:28:06
在为我工作了几个小时之后,下面的命令如下。从PgAdmin 4开始,它很难使用。
/Library/PostgreSQL/10/bin/pg_restore -U postgres -p 5433 -d dvdrental /pg-db/dvdrental/只需将zip解压缩到文件夹中,并使用以下选项执行pg_restore命令(在我的示例中是Mac,其中/pg-db/dvdrental/是zip解压缩目录)。
https://stackoverflow.com/questions/35246737
复制相似问题