pg_restore: входной файл [archiver] слишком короткий, ошибка в postgres

Я пытаюсь сбросить базу данных в моей локальной системе с помощью команды:

pg_restore --host=localhost --port=5432 --dbname=dev_db --no-owner --no-privileges db_dump_new.backup

но я получаю сообщение об ошибке:

pg_restore: [archiver] input file is too short (read 0, expected 5)

Что я делаю не так?


person the_unknown_spirit    schedule 07.04.2016    source источник
comment
Мое первоначальное предположение заключалось в том, что проблема была с pg_dump, а не с pg_restore. Насколько велик файл db_dump_new.backup?   -  person Gary    schedule 07.04.2016


Ответы (3)


Если вы используете докер и перенаправляете файл дампа с вашего локального компьютера, не забудьте -i. Это не сработает:

docker exec <container> pg_restore -U "$USER" < ./localfile.dump;

Убедитесь, что док-контейнер может видеть стандарт с опцией -i! Это должно работать:

docker exec -i <container> pg_restore -U "$USER" < ./localfile.dump;
person lmat - Reinstate Monica    schedule 08.01.2020

Я столкнулся с той же ошибкой. В моем случае я просто забыл указать файл резервной копии в конце команды.

person nano    schedule 22.06.2016
comment
закончилось той же ошибкой, потому что потерян `` многострочный скрипт bash .... - person andilabs; 05.10.2017

В моем случае я использовал докер

$ docker exec a5f7b094c523 pg_restore -d my_new_db < "./2256.dump"
pg_restore: [archiver] input file is too short (read 0, expected 5)

И проблема заключалась в том, что "./2256.dump" - это не двоичный файл, а обычный текстовый дамп sql.

Чтобы проверить это, просто выполните

$ head ~/2256.dump                                                                                                    
--
-- PostgreSQL database dump
--

-- Dumped from database version 10.8 (Ubuntu 10.8-0ubuntu0.18.04.1)
-- Dumped by pg_dump version 10.8 (Ubuntu 10.8-0ubuntu0.18.04.1)

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;

И импортировать дамп sql fo

$ pv ~/2256.dump |docker-compose -f docker-compose.dev.yml -f docker-compose.override.yml -T db psql "fight-round3" 
person Andrei.Danciuc    schedule 30.07.2019
comment
Я получаю ту же ошибку, но мой файл дампа является бинарным. Есть какие-нибудь подсказки? - person lmat - Reinstate Monica; 05.12.2019