Я делаю резервную копию, используя
pg_dump db_production > postgres_db.dump
а затем я копирую его на localhost с помощью scp.
Теперь, когда я импортирую свой локальный БД, он выдает ошибку
pg_restore: [archiver] input file appears to be a text format dump. Please use psql.
с помощью командной строки
pg_restore -d db_development postgres_db.dump
postgresql
backup
pg-restore
Хасиб Ахмад
источник
источник
Ответ выше не сработал для меня, это сработало:
psql db_development < postgres_db.dump
источник
Для меня, когда я пытаюсь восстановить с удаленного хоста, я использовал
работал нормально. А если не удаленно, то работала только следующая команда.
источник
Чтобы создать резервную копию с использованием
pg_dump
, совместимого с,pg_restore
вы должны использовать--format=custom
/-Fc
при создании дампа.Из документов:
Итак, ваша
pg_dump
команда может выглядеть так:И ваша
pg_restore
команда:источник
Для меня это работает так. C: \ Program Files \ PostgreSQL \ 12 \ bin> psql -U postgres -p 5432 -d dummy -f C: \ Users \ Downloads \ d2cm_test.sql
источник
если вы используете pg_dump с -Fp для резервного копирования в текстовом формате, используйте следующую команду:
скопировать все данные в вашу базу данных с именем dbname
источник
Если у вас полный дамп БД:
Однако если у вас есть схемы, хранящиеся отдельно, это не сработает. Затем вам нужно отключить триггеры для вставки данных, аналогичные
pg_restore --disable-triggers
. Затем вы можете использовать это:cat database_data_only.gzip | gunzip | PGPASSWORD="your_pass" psql -h "your_host" -U root "your_database" -c 'SET session_replication_role = replica;' -f /dev/stdin
Кстати, я считаю, что это очень неприятный недостаток postgres. Способ создания дампа по умолчанию
pg_dump
несовместим сpg_restore
. Однако с некоторыми дополнительными клавишами это возможно. Какого черта?источник