Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
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
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
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
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
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
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
Là, c'est plutôt à un forum PostGIS qu'il faudrait poser la question
Guillaume.
Hors ligne
Pages : 1