pg_dump
по умолчанию создает команды sql, необходимые для воссоздания данных. Чтобы восстановить его, вам просто нужно вызвать psql
(не pg_restore
) файл с вводом. pg_restore
должен использоваться только для двоичного (не по умолчанию и менее обычного не рекомендуется ) формата pg_dump
. Прочитайте документы .
Обновление: pg_dump
двоичные форматы ( -Fc
-Ft
), которые должны использоваться с pg_restore
, в порядке, и предлагают некоторую дополнительную гибкость. Но они менее стандартны (не SQL), менее пригодны для импорта из некоторых инструментов (например, из php-интерфейса) или для работы с текстовым редактором, и немного менее переносимы для других версий и даже других баз данных. Для резервных копий я бы использовал стандартный формат по умолчанию. Для других сценариев опция binary + pg_restore может быть одинаково или более подходящей.
Следует учесть, что в Postgresql в типичном сценарии резервное копирование обычно выполняется с помощью pg_dump (plain) и восстановления с помощью стандартного клиента командной строки ( psql ).