Obtenir «version non prise en charge de l’archiveur (1.13) dans l’en-tête du fichier» lors de l’exécution de pg_restore

Je viens de mettre à niveau vers postgres 10.2 sur mac os qui correspond à 10.2 sur heroku. J’essaie de télécharger une copie de la firebase database et de la restaurer localement. Avant la mise à niveau, la restauration fonctionnerait correctement.

je cours

pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump 

mais je reçois cette erreur:

pg_restore: [archiver] version non prise en charge (1.13) dans l’en-tête du fichier

La firebase database semble fonctionner correctement. C’est une application de rails et j’ai amélioré les gem pg. Je peux exécuter rake db:create et db:migrate très bien.

Vous devez mettre à jour votre postgres local pour obtenir le dernier correctif de sécurité à partir du 2018-03-01, comme Heroku fait le 1er mars. Vous avez besoin d’une des dernières versions 10.3 , 9.6.8 , 9.5.12 , 9.4.17 et 9.3.22 .

Le correctif de sécurité peut être trouvé ici https://www.postgresql.org/about/news/1834/ .

Il semble que le patch a modifié pg_dump, c’est probablement pourquoi nous ne pouvons plus utiliser pg_restore sans ce patch pour le dump de Heroku (avec le patch appliqué).

Je suis tombé sur ce même problème aujourd’hui, je ne sais pas si quelque chose a changé du côté de Heroku, parce que localement, je cours 9.6 mais ma firebase database sur Heroku est 9.4, donc il ne semble pas y avoir de différence travaillait jusqu’à aujourd’hui.)

Si vous utilisez Postgres.app ( https://postgresapp.com/ ) sur un Mac, assurez-vous que vous utilisez la version v2.1.3 (à ce jour, c’est la version la plus récente). Lorsque vous mettez à niveau Postgres.app, vous obtenez la dernière version de correctif de Postgres (ce qui est probablement à l’origine de la non-concordance actuelle: Heroku a mis à jour le dernier correctif de sécurité et votre ordinateur local ne l’a peut-être pas).

J’ai dû mettre à jour Postgres.app de 2.1.0 à 2.1.3 et cela a résolu le problème.

Depuis hier (01/03/2018), nous avons également rencontré des problèmes lors de la restauration d’une sauvegarde Heroku sur PostgreSQL 9.5:

 pg_restore: [archiver] unsupported version (1.13) in file header 

La mise à niveau de notre version PostgreSQL de 9.5.11 à 9.5.12 a résolu le problème.

La première fois que j’ai eu ce problème, voici comment j’ai restauré la firebase database Heroku à mon Local:

 $ rails db:drop $ heroku pg:pull DATABASE_URL  --app  

Pour ceux qui tentent de mettre à jour postgresql dans Ubuntu sans succès (comme le fait remarquer Johan ci-dessus), essayez d’utiliser le repository PostgreSQL, comme indiqué dans les instructions de téléchargement officielles de PostgreSQL: https://www.postgresql.org/download/linux/ubuntu /

 deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update 

Je ne recommande pas de mettre à niveau votre firebase database vers une nouvelle version majeure localement (appliquez les correctifs de sécurité) pour corriger cela car vous souhaitez que cela corresponde à la version que vous avez en production.

Cela a corrigé sur Ubuntu 16.04, la restauration à partir d’une firebase database Heroku.

Tout d’abord, assurez-vous d’avoir le repo postgresql mentionné plus haut. Ensuite, installez le client mis à niveau.

sudo apt-get update && sudo apt-get install postgresql-client-10

Si vous êtes Ubuntu 17.04 ou 17.10, notez que le repositionnement zesty de PostgreSQL n’a pas le client dont vous avez besoin. Vous voudrez plutôt utiliser le repo xenial Postgres.

Le correctif pour moi impliquait à la fois la mise à jour de mon Postgres.app et la mise à jour de mon homebrew local PostgreSQL.

Mettez à jour ma réponse Postgres.app via Canuk:

Ouvrez Postgres.app> Recherchez les mises à jour …

Mettez à jour mon homebrew local PostgreSQL via le commentaire de gerry3 sur la réponse acceptée:

brew upgrade postgresql brew postgresql-upgrade-database

A eu ce problème sous Windows en utilisant pgAdmin 3.

La mise à niveau de pgAdmin 3 à pgAdmin 4 a résolu le problème pour moi.

Si vous utilisez un outil tiers, tel que PgAdmin, pour restaurer le fichier de vidage fourni, la restauration peut échouer même si la version de Postgres installée est à jour. Cela est dû au fait que les outils tiers regroupent souvent leurs propres versions du binary pg_restore, qui peuvent ne pas être à jour. https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore

Je rencontrais la même erreur. J’ai mis à jour pour postgresql 10.3 localement, et cela a résolu le problème pour moi.

Vous utilisez une ancienne version de binary pg_restore qui ne prend pas en charge la restauration du fichier de vidage fourni. Veuillez vous assurer que vous utilisez la dernière version de Postgres, qui doit être supérieure à la version suivante: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 et 9.3.22).

Vous pouvez vérifier la version de pg_restore que vous utilisez en exécutant pg_restore –version.

Si vous utilisez un outil tiers, tel que PgAdmin, pour restaurer le fichier de vidage fourni, la restauration peut échouer même si la version de Postgres installée est à jour. Cela est dû au fait que les outils tiers regroupent souvent leurs propres versions du binary pg_restore, qui peuvent ne pas être à jour.

J’ai rencontré le même problème il y a 10 minutes et j’ai découvert ce sujet depuis 2005: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com

Fondamentalement, le gars dit que le fichier de vidage est corrompu.