входной файл выглядит как дамп текстового формата. Пожалуйста, используйте команду psql

Я беру резервную копию с помощью

pg_dump db_production > postgres_db.dump

и затем я копирую его на localhost с помощью scp.

Теперь, когда я импортирую на свой локальный db, он дает ошибку

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

С помощью строки commad

pg_restore -d db_development postgres_db.dump

3 ответов


перед вами downvote

это только часть документации!

С pg_dump документы:

примеры

чтобы сбросить базу данных с именем mydb в файл SQL-скрипта:

$ pg_dump mydb > db.sql

перезагрузить такой скрипт в (только что созданную) базу данных с именем newdb:

$ psql -d newdb -f db.sql

для сброса базы данных в пользовательский формат архивный файл:

$ pg_dump -Fc mydb > db.dump

чтобы сбросить базу данных в каталог-формат архива:

$ pg_dump -Fd mydb -f dumpdir

чтобы перезагрузить архивный файл в (только что созданную) базу данных с именем newdb:

$ pg_restore -d newdb db.dump

С pg_restore документы:

примеры

Предположим, мы сбросили базу данных с именем mydb в файл дампа пользовательского формата:

$ pg_dump -Fc mydb > db.dump

чтобы удалить базу данных и воссоздать ее из дампа:

$ dropdb mydb
$ pg_restore -C -d postgres db.dump

ответ выше не работал для меня, это сработало:

psql db_production < postgres_db.dump


Если вы используете pg_dump с-Fp для резервного копирования в текстовом формате, используйте следующую команду:

cat db.txt | psql dbname

чтобы скопировать все данные в базу данных с именем dbname