我用

pg_dump db_production > postgres_db.dump

然后使用scp将其复制到localhost。

现在当我导入我的本地db时,它给出了一个错误

pg_restore: [archiver] input file appears to be a text format dump. Please use psql.

使用命令行

pg_restore -d db_development postgres_db.dump

当前回答

这是解,

pg_restore -U username -p 5432 -h 10.10.10.1 -d database_name < dump_file . pg_restore -U username -p 5432

其他回答

为了使用pg_dump创建与pg_restore兼容的备份,在创建转储时必须使用——format=custom / -Fc。

从文档中可以看出:

输出适合输入到pg_restore的自定义格式的存档。

所以你的pg_dump命令可能是这样的:

pg_dump --file /tmp/db.dump --format=custom --host localhost --dbname my-source-database --username my-username --password

你的pg_restore命令:

pg_restore --verbose --clean --no-acl --no-owner --host localhost --dbname my-destination-database /tmp/db.dump

对我来说,当我试图从远程主机恢复我使用

psql -U username -p 5432 -h 10.10.10.1 -d database < db.dump

工作得很好。如果不是远程,只是下面的命令工作。

psql -d database < db.dump

这是解,

pg_restore -U username -p 5432 -h 10.10.10.1 -d database_name < dump_file . pg_restore -U username -p 5432

psql -U <username> -d <database-name> -h <host-name> -f <backup.sql> . p

对我来说,就像这样。

C:\Program Files\PostgreSQL\12\bin> psql -U postgres -p 5432  -d dummy -f C:\Users\Downloads\d2cm_test.sql