Я только что обновился до Postgres 10.2 на Mac OS, который соответствует 10.2 на Heroku. Я пытаюсь скачать копию базы данных и восстановить ее локально. До обновления восстановление работало бы нормально.
я бегу
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
но я получаю эту ошибку:
pg_restore: [архиватор] неподдерживаемая версия (1.13) в заголовке файла
База данных работает нормально. Это приложение rails, и я обновил pg gems. Я могу бежать rake db:create
и db:migrate
просто отлично.
источник
brew upgrade postgresql
brew postgresql-upgrade-database
brew upgrade postgresql && brew postgresql-upgrade-database
действительно решают проблему, но мои локальные базы данных были сброшены по пути. Сделайте резервную копию, если у вас есть важные данные!Я столкнулся с этой же проблемой сегодня, я не знаю, изменилось ли что-то на стороне Heroku, потому что локально я использую 9.6, но моя база данных на Heroku - 9.4, так что, похоже, она не о разнице в точках версии ( работал до сегодняшнего дня.)
Если вы используете Postgres.app ( https://postgresapp.com/ ) на Mac, убедитесь, что вы работаете
v2.1.3
(на момент написания этой статьи это самая новая версия). При обновлении Postgres.app вы получаете новейший выпуск исправлений Postgres (что, вероятно, вызывает несоответствие, которое вы испытываете в настоящее время - Heroku обновил систему до последнего исправления безопасности, и на вашем локальном компьютере его может не быть).источник
Со вчерашнего дня (01/01/2018) у нас также были проблемы с восстановлением резервной копии из Heroku, работающей на PostgreSQL 9.5:
Обновление нашей версии PostgreSQL с 9.5.11 до 9.5.12 устранило проблему.
источник
Когда я впервые столкнулся с этой проблемой, вот как я восстановил базу данных Heroku в своем Local:
источник
heroku pg:pull
. Но это не подходящее решение, так как вы все еще не можете локально восстановить предыдущий дамп heroku, также я думаю, что при извлечении используется ресурс живой базы данных.Для тех, кто пытается безуспешно обновить postgresql в Ubuntu (как прокомментировал Йохан выше), попробуйте использовать репозиторий PostgreSQL apt, как указано в официальных инструкциях по загрузке PostgreSQL: https://www.postgresql.org/download/linux/ubuntu /
источник
Исправление для меня включало в себя как обновление моего Postgres.app, так и обновление моего локального доморощенного PostgreSQL.
Обновите мой Postgres.app через ответ Canuk:
Обновите мой локальный доморощенный PostgreSQL через комментарий gerry3 о принятом ответе:
brew upgrade postgresql
brew postgresql-upgrade-database
источник
Была эта проблема на Windows с помощью pgAdmin 3.
Обновление с pgAdmin 3 до pgAdmin 4 решило проблему для меня.
источник
pg_restore
успешно работать .Я не рекомендую обновлять вашу БД до новой основной версии локально (применяйте исправления безопасности) просто для того, чтобы исправить это так, как вы хотите, чтобы оно соответствовало любой версии, имеющейся у вас в производстве.
Это исправлено в Ubuntu 16.04, восстановление из базы данных Heroku.
Во-первых, убедитесь, что у вас есть репозиторий postgresql, о котором говорил Диего. Затем установите обновленный клиент.
sudo apt-get update && sudo apt-get install postgresql-client-10
Если вы Ubuntu 17,04 или 17,10, обратите внимание , что пикантный репо в PostgreSQL это не имеет обновленный клиент Вам необходимо. Вы захотите использовать Xenial Postgres репо.
источник
Unable to locate package postgresql-client-10
когда я делаю этоВот как я решил проблему в Ubuntu (16.04 LTS), где pg_restore / pg_dump дал мне более старую версию из psql
Проблема в том, что у меня установлено несколько версий pg, а pg_restore указывал на более раннюю версию
Исправление заключается в создании файла ~ / .postgresqlrc, указывающего на правильную версию
Как только это будет сделано, pg_restore указывает на правильную версию, и команда проходит
Подробности приведены здесь: /server/610777/wrong-version-of-pg-dump-on-ubuntu
источник
Я столкнулся с этой проблемой на pgadmin III и смог ее исправить, переключив расположение двоичных файлов:
Меню Файл> Параметры> Двоичные пути, затем изменил «PG bin path» на postgresql / 9.x / bin вместо ProgramFiles / pgadmin. Восстановление работало нормально после этого.
источник
Вы используете старую версию двоичного файла pg_restore, которая не поддерживает восстановление предоставленного файла дампа. Убедитесь, что вы используете последнюю версию Postgres, которая должна быть выше следующей версии: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 и 9.3.22).
Вы можете проверить версию pg_restore, которую вы используете, запустив pg_restore --version.
Если вы используете сторонний инструмент, такой как PgAdmin, для восстановления предоставленного файла дампа, восстановление может не завершиться успешно, даже если установленная версия Postgres обновлена. Это связано с тем, что сторонние инструменты часто связывают свои собственные версии двоичного файла pg_restore, которые могут быть устаревшими.
источник
Я столкнулся с той же ошибкой. Я обновился до postgresql 10.3 локально, и это решило проблему для меня.
источник
Для Windows:
Откройте командную строку (
cmd
), затем перейдите в расположениеC:\Program Files\PostgreSQL\9.6\bin
и выполните следующие команды:Надеюсь, это поможет вам
источник
Я запустил ту же проблему 10 минут назад и узнал об этой теме с 2005 года: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com
В основном парень говорит, что файл дампа поврежден.
источник