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 27/07/2012 21:55:28

meley
Membre

Problème avec PostGIS

Bonjour,

Je viens d'installer PostgreSQL sur mon serveur qui tourne sous Ubuntu. J'ai créée une base de données à laquelle j'ai rajouté la cartouche cartographique. Ensuite, j'importe ma base de données grâce à une sauvegarde avec la commande :
    cat  nom_de_la_base.sql | psql -d  nom_de_la_base

Là, premiers soucis, durant l'exécution j'ai des erreurs de type :

ERROR:  multiple primary keys for table "spatial_ref_sys" are not allowed

ERROR:  multiple primary keys for table "geometry_columns" are not allowed

et surtout beaucoup de :

ERROR:  invalid byte sequence for encoding "UTF8": 0xe96509
CONTEXT:  COPY zdu, line 1

Lorsque j'essaie de voir si la base a été correctement copié, je me connecte avec pgadminIII et lorsque je clique sur mes tables j'ai l'erreur suivante :

Une erreur s'est produite :
ERROR permission denied for relation nom_table

Alors que je me suis connecté en avec l'user propriétaire de la base de données....

Comment puis-je régler tout ça s'il vous plais ?

Merci

Hors ligne

#2 27/07/2012 23:28:13

gleu
Administrateur

Re : Problème avec PostGIS

La sauvegarde que vous restaurez contient déjà PostGIS ? ça expliquerait le coup des clés primaires multiples.

En fait, quand vous avez un problème avec la restauration d'une sauvegarde, il faut trouver le premier message d'erreur, puis le corriger. Relancez la restauration, trouvez de nouveau le premier message d'erreur, le corriger, etc. Il faut avancer comme cela petit à petit, sinon vous n'y arriverez jamais. Donc commencez par créer une base vide, essayez d'y restaurer votre sauvegarde et récupérez le premier message d'erreur. Si vous ne savez pas résoudre ce message, venez ici demander.


Guillaume.

Hors ligne

#3 28/07/2012 02:55:03

meley
Membre

Re : Problème avec PostGIS

Merci pour ta réponse rapide.

La sauvegarde que je restaure était déjà une base de données géographiques oui.
Le premier message d'erreur qu'il m'affiche est les suivant :

ERROR:  language "plpgsql" already exists

Et il est suivi de beaucoup beaucoup d'autres ...

Que faut-il que je fasse ??

Merci pour ton aide

Hors ligne

#4 28/07/2012 08:23:52

gleu
Administrateur

Re : Problème avec PostGIS

Tu ne peux rien faire pour ce message. Le langage existe déjà bien, donc pas de soucis. Si tu ne veux plus le voir, il suffit de faire un "droplang plppgsql ta_base" après le écreatedb ta_base". Regarde le message suivant.


Guillaume.

Hors ligne

#5 28/07/2012 14:05:38

meley
Membre

Re : Problème avec PostGIS

D'accord. Après il y a plusieurs messages du même genre qui m'indique que plusieurs type et fonction existent déjà.
Par contre, j'ai d'autres messages qui eux sont plus intéressant je pense :
    ERROR: could not access file "$libdir/liblwgeom.dll": Aucun fichier ou dossier de ce type

Hors ligne

#6 28/07/2012 14:14:09

gleu
Administrateur

Re : Problème avec PostGIS

Les types et fonctions qui existent déjà correspondent à des types et fonctions de PostGIS ? Si oui, c'est que votre base n'est pas vierge. Comment l'avez-vous créé ?

Concernant le fait que liblwgeom.dll n'existe pas, ça me fait penser que vous avez sur cette sauvegarde une ancienne version de PostGIS et que vous essayez de la restaurer sur une version plus récente. Donc, à partir de quelle version de PostgreSQL et de PostGIS a été fait la sauvegarde et sur quelle version de PostgreSQL et de PostGIS essayez-vous de la restaurer ?


Guillaume.

Hors ligne

#7 28/07/2012 14:43:48

meley
Membre

Re : Problème avec PostGIS

Alors pour la création de la base j'ai effectué les opération suivantes :
    createdb -U user base_geo
    sudo -i -u postgres
    psql -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql  <nom_base_geo>
    psql -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql  <nom_base_geo>

Pour ce qui est de la base de données à importer elle a effectivement été sauvegardé depuis une version plus ancienne de Postgres/PostGis. Il s'agit de la 8.2. Quand à la version sur laquelle je tente l'import c'est la 9.1.4 pour Postgres et la 1.5 pour PostGIS.

Hors ligne

#8 28/07/2012 14:58:56

gleu
Administrateur

Re : Problème avec PostGIS

Tous vos problèmes viennent de là. Sur votre sauvegarde, il y a déjà les objets systèmes de PostGIS. Du coup, à la restauration, il essaie de les recréer, ce qui ne passe pas. De plus, certaines bibliothèques (par exemple liblwgeom) qui existaient sur votre ancienne version de PostGIS n'existent plus sur la version 1.5.

Ça va vous prendre beaucoup de temps de démêler cet écheveau.

Généralement, il est conseillé d'installer PostGIS dans un schéma et de toute sauvegarder sauf ce schéma. La restauration se passe beaucoup mieux (sans pour autant dire parfaitement) parce qu'il n'essaie pas de recréer des objets déjà existants. Si vous avez la possibilité de refaire une sauvegarde et que vous aviez bien ajouter les objets systèmes PostGIS dans un schéma particulier, il serait plus simple de refaire la sauvegarde. Sinon vous allez vraiment beaucoup galérer. Il va vous falloir dans ce cas vérifier que toutes les erreurs sont relatives à PostGIS et que cela n'empêche pas que vos données personnelles soient bien restaurées. Bon courage.


Guillaume.

Hors ligne

#9 29/07/2012 15:52:01

meley
Membre

Re : Problème avec PostGIS

D'accord. Mais en fait la base de données en question n'est faite que de fichiers shape que j'ai importé grâce à la commande shp2pgsql sur mon autre machine.
Etant donné que je possède tous ces fichiers sur mon ordinateur aussi, comment puis-je les importer dans ma base de données ? J'ai tenté la fonction shp2pgsql dessus mais la fonction est introuvable ... Elle ne doit peut-être plus exister avec la version de PostGIS que j'utilise. Comment puis-je faire ?

Hors ligne

#10 30/07/2012 09:11:12

gleu
Administrateur

Re : Problème avec PostGIS

Là, c'est plutôt à un forum PostGIS qu'il faudrait poser la question smile


Guillaume.

Hors ligne

Pied de page des forums