Je viens de passer à postgres 10.2 sur mac os qui correspond à 10.2 sur heroku. J'essaye de télécharger une copie de la base de données et de la restaurer localement. Avant la mise à niveau, la restauration fonctionnait correctement.
je cours
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
mais j'obtiens cette erreur:
pg_restore: [archiveur] version non prise en charge (1.13) dans l'en-tête du fichier
La base de données semble fonctionner correctement. C'est une application de rails et j'ai mis à niveau les gemmes pg. Je peux courir rake db:create
et db:migrate
très bien.
la source
brew upgrade postgresql
brew postgresql-upgrade-database
brew upgrade postgresql && brew postgresql-upgrade-database
résolvent effectivement le problème, mais mes bases de données locales ont été abandonnées en cours de route. Sauvegardez-les si vous avez des données critiques!J'ai rencontré ce même problème aujourd'hui, je ne sais pas si quelque chose a changé du côté d'Heroku, car localement j'exécute 9.6 mais ma base de données sur Heroku est 9.4, donc cela ne semblait pas être à propos de la différence de point de version (il travaillait jusqu'à aujourd'hui.)
Si vous utilisez Postgres.app ( https://postgresapp.com/ ) sur un Mac, assurez-vous que vous utilisez
v2.1.3
(au moment de la rédaction de cet article, il s'agit de la version la plus récente). Lorsque vous mettez à niveau Postgres.app, vous obtenez la dernière version du correctif de Postgres, (ce qui est probablement à l'origine de l'incohérence que vous rencontrez actuellement - Heroku a mis à niveau pour le dernier correctif de sécurité, et votre machine locale ne l'a peut-être pas).la source
Depuis hier (03/01/2018), nous avons également eu des problèmes pour restaurer une sauvegarde depuis Heroku fonctionnant sous PostgreSQL 9.5:
La mise à niveau de notre version PostgreSQL de 9.5.11 à 9.5.12 a résolu le problème.
la source
La première fois que j'ai eu ce problème, voici comment j'ai restauré la base de données Heroku dans ma section locale:
la source
heroku pg:pull
. Mais ce n'est pas une solution appropriée, car vous ne pouvez toujours pas restaurer localement un dump heroku précédent, je suppose également que cela utilise la ressource de base de données en direct lors de l'extraction.Pour ceux qui essaient de mettre à niveau postgresql dans Ubuntu sans succès (comme Johan's commenté ci-dessus), essayez d'utiliser le référentiel apt PostgreSQL, comme indiqué dans les instructions de téléchargement officielles de PostgreSQL: https://www.postgresql.org/download/linux/ubuntu /
la source
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 mon Postgres.app via la réponse de Canuk:
Mettez à jour mon homebrew local PostgreSQL via le commentaire de gerry3 sur la réponse acceptée:
brew upgrade postgresql
brew postgresql-upgrade-database
la source
Eu ce problème sur Windows en utilisant pgAdmin 3.
La mise à niveau de pgAdmin 3 vers pgAdmin 4 a résolu le problème pour moi.
la source
pg_restore
avec succès.Je ne recommande pas de mettre à niveau votre base de données vers une nouvelle version majeure localement (appliquez des correctifs de sécurité) juste pour résoudre ce problème, car vous voulez que cela corresponde à la version que vous avez en production.
Cela a résolu le problème sur Ubuntu 16.04, en restaurant à partir d'une base de données Heroku.
Tout d'abord, assurez-vous d'avoir le repo postgresql comme diego l'a mentionné. 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 dépôt zesty de PostgreSQL n'a pas les clients mis à jour dont vous avez besoin. Vous voudrez plutôt utiliser le repo xenial Postgres.
la source
Unable to locate package postgresql-client-10
quand je fais çaVoici comment j'ai résolu le problème sur Ubuntu (16.04 LTS) où pg_restore / pg_dump m'a donné une version plus ancienne, de psql
Le problème est que j'ai plusieurs versions de pg installées et pg_restore pointait vers la version antérieure
Le correctif consiste à créer un fichier ~ / .postgresqlrc pointant vers la version correcte
Une fois cela fait, pg_restore pointe vers la version correcte, et la commande passe par
Détails donnés ici: /server/610777/wrong-version-of-pg-dump-on-ubuntu
la source
J'ai rencontré ce problème sur pgadmin III et j'ai pu le résoudre en changeant l'emplacement des binaires:
Menu Fichier> Options> Chemins binaires, puis a changé "PG bin path" en postgresql / 9.x / bin au lieu de ProgramFiles / pgadmin. La restauration a bien fonctionné par la suite.
la source
Vous utilisez une ancienne version du binaire 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 avec la version Postgres installée étant à jour. Cela est dû au fait que des outils tiers regroupent souvent leurs propres versions du binaire pg_restore, qui peuvent ne pas être à jour.
la source
Je rencontrais la même erreur. J'ai mis à jour vers postgresql 10.3 localement, et cela a résolu le problème pour moi.
la source
Pour les fenêtres:
Ouvrez l'invite de commande (
cmd
), puis accédez à l'emplacementC:\Program Files\PostgreSQL\9.6\bin
et exécutez ces commandes:J'espère que cela vous aidera
la source
J'ai couru dans le même numéro il y a 10 minutes et j'ai découvert ce fil à partir de 2005: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com
Fondamentalement, le gars dit que le fichier de vidage est corrompu.
la source