pg_restore:错误:输入文件似乎不是有效的存档

问题描述

我已经提取一个 pg_dump,但我不是 100% 确定我应该命名我的输出文件。这是我的命令:

pg_dump --dbname=db --format=t --host=foo --username=db --password=bar --dbname=db --exclude-table=store > db_backup

这得到了我的一个不错的文件,120megs,正如我所期望的。当我尝试在 PG 管理员中执行 pg_restore 时,我得到:

pg_restore: error: input file does not appear to be a valid archive

pgdmin 正在运行的命令是这样的:

pg_restore.exe --host "localhost" --port "5432" --username "foo" --no-password --role "yanis" --dbname "air" --verbose

解决方法

请确保在 pgadmin 恢复窗口中您正在传递包括文件名的完整路径。 Pgdmin 将创建一个类似这样的命令:

pg_restore.exe --host "localhost" --port "5432" --username "foo" --no-password --role "yanis" --dbname "air" --verbose "C:/db_backup"

另外,请确保 pgadmin 可以读取 db_backup 文件,并且文件的权限不受限制。