PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 30/10/2012 22:03:56

f.ravel
Membre

Erreur lors de la restauration d'une BDD - fonction public.ndims

Bonjour,

Une base de donnée vient de m'être livrée par le biais d'un fichier de sauvegarde d'une base de données PostGrès/PostGIS : un fichier ".dump" en l’occurrence.

Cette base contient des données purement attributaires et pour le reste des données graphiques (tables SIG gérées par PostGIS)

Lorsque je tente de restaurer ladite base de donnée :
    - Toutes les tables purement attributaires semblent se restaurer "correctement" même si bon nombre de messages  d'erreurs font référence à des "relations inexistantes" avec des tables qui ne se sont, elles, pas restaurées... cf. point suivant
    - Par contre 2 tables faisant référence à des données graphiques ne sont pas restaurées avec, notamment, le message suivant dans le rapport de restauration : "ERREUR:  la fonction public.ndims(public.geometry) n'existe pas"

L'erreur portant sur des tables graphiques je présuppose qu'il doit y avoir un problème du côté PostGIS ?

Je fais cette restauration dans la dernière version de PostGrès/PostGIS. Je précise que la cartouche spatiale PostGIS est bien installée.

Je suppose que je dois faire une erreur à un moment ou à un autre :
    - Erreur dans lors de la création de la base de donnée dans laquelle je tente ensuite de restaurer les données ? (j'ai testé les modèles "postgis20" et "template_postgis_20" sans résultats)
    - Erreur lors de la restauration de la base ? (je laisse toutes les options par défaut)
    - Incompatibilité entre la version de postgrès qui a servi à créer le fichier de restauration et la version de postgrès (9.2) dans laquelle je tente de faire ma restauration ? (j'ai testé l'import dans une base en 9.1 sans plus de succès)

Si quelqu'un a une piste à me donner je suis preneur...

D'avance merci.

Hors ligne

#2 30/10/2012 23:59:56

gleu
Administrateur

Re : Erreur lors de la restauration d'une BDD - fonction public.ndims

Vous dites que PostGIS est bien installé, OK, mais est-ce la même version que celle de la base sauvegardée ?

Pour vous aider plus directement, il faudrait avoir les premiers messages d'erreur.


Guillaume.

Hors ligne

#3 31/10/2012 00:44:24

f.ravel
Membre

Re : Erreur lors de la restauration d'une BDD - fonction public.ndims

Bonsoir,

Voici quelques exemples des premiers messages d'erreur :

1er exemple

pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 40328 ; 1259 100337184 TABLE d63_2011_pb0010_local postgres
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  le type « public.geometry » n'existe pas
LIGNE 79 :     geomloc public.geometry,
                       ^
    La commande était : CREATE TABLE d63_2011_pb0010_local (
    idlocal character varying(12),
    idbat character varying(16),
    idpar character...
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  la relation « ff_d63_2011.d63_2011_pb0010_local » n'existe pas
    La commande était : ALTER TABLE ff_d63_2011.d63_2011_pb0010_local OWNER TO postgres;


pg_restore: création de COMMENT TABLE d63_2011_pb0010_local
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 41598 ; 0 0 COMMENT TABLE d63_2011_pb0010_local postgres
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  la relation « d63_2011_pb0010_local » n'existe pas
    La commande était : COMMENT ON TABLE d63_2011_pb0010_local IS 'Table des locaux';

2eme exemple

pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») :
pg_restore: [programme d'archivage (db)] Erreur à partir de l'entrée TOC 40328 ; 1259 100337184 TABLE d63_2011_pb0010_local postgres
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  la fonction public.ndims(public.geometry) n'existe pas
ASTUCE : Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
    La commande était : CREATE TABLE d63_2011_pb0010_local (
    idlocal character varying(12),
    idbat character varying(16),
    idpar character...
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR:  la relation « ff_d63_2011.d63_2011_pb0010_local » n'existe pas
    La commande était : ALTER TABLE ff_d63_2011.d63_2011_pb0010_local OWNER TO postgres;

Hors ligne

#4 31/10/2012 13:01:01

f.ravel
Membre

Re : Erreur lors de la restauration d'une BDD - fonction public.ndims

Bon j'ai fini par résoudre mon problème d'import.

Etant dans la dernière version du couple PostGrès/PostGIS, le tout sur une machine en 64bits... et après de nombreuses tentatives sur des versions précédentes de PostGrès (identiques à celles utilisées par le fournisseur de mes données) qui se sont révélées être des échecs également... je suis revenu sur un bon vieux XP 32bits avec les anciennes versions de Postgrès,  résultat : ça fonctionne parfaitement.

Des fois faut pas chercher à comprendre !!!

Maintenant faut que j'arrive à faire migrer tout ce petit monde dans ma nouvelle base de données.

Hors ligne

Pied de page des forums