Utilisation pg_restore restaurer à partir d'une version plus récente de PostgreSQL

J'ai un (de production) DB serveur exécutant PostgreSQL v9.0 et développement d'une machine de course de PostgreSQL v8.4. Je voudrais prendre un dump de la base de données de production et de l'utiliser sur la machine de développement. Je ne peux pas mettre à niveau les postgres sur le dev de la machine.

Sur la production de la machine, je lance:

pg_dump -f nvdls.db -F p -U nvdladmin nvdlstats

Sur le développement de la machine, je lance:

pg_restore -d nvdlstats -U nvdladmin nvdls.db

Et j'ai eu cette erreur:

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

Cela se produit indépendamment de savoir si j'choisissez personnalisé, goudron, ou plain_text format de dumping.

J'ai trouvé une discussion en ligne qui suggère que je devrais utiliser une version plus récente de pg_restore sur le dev de la machine. J'ai essayé en copiant simplement le 9.0 binaire pour le dev de la machine, mais cela ne marche pas (pas de façon inattendue) en raison de la liaison des problèmes.

J'ai pensé que le point de l'aide d'un plain_text dump qu'il soit brut, SQL portable. Apparemment pas.

Comment puis-je obtenir la version 9.0 DB dans mon 8.4 installer?

Vous pourriez avoir à la fois 8.4 9.0 fonctionnant en parallèle (c'est ce que je fais, il fonctionne très bien), de cette façon, vous pouvez garder 8.4 pour les projets locaux qui en dépendent, encore 9.0 pour qu'une application qui utilise 9: sur le long terme, il sera payant mieux que d'essayer de restaurer une image d'une version différente.
l'Exportation et l'Importation de PostgresSQL avec pgAdmin III

OriginalL'auteur Phrogz | 2011-01-05