Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 15 April 2009 11:01

darts
Juste Inscrit !
Date d'inscription: 15 Apr 2009
Messages: 9

problème connexion PostgreSql QGIS

Bonjour,

Je travaille sous Debian et je n'arrive pas du tout à accéder à ma base de données postgres.
Sous QGIS, dans " Connexion PostGreSql " je configure ma connexion (le test est bon) mais lorsque que je veux ensuite connecter j'ai le message d'erreur suivant :

La connection à la base de donnée a réussi, mais aucune table n'est accessible.Le message d'erreur de la base de donnée est :
ERREUR:  le type « geometry » n'existe pas


J'ai lu plusieurs sujets dans cette partie du forum pour résoudre ce problème; j'ai vu qu'il fallait exécuter les scripts SQL (lwpostgis.sql et spatial_ref_sys.sql). Les tables geometry_columns et spatial_ref_sys sont créées et j'ai pu seulement valider le fichier spatial_ref_sys.sql.

J'ai bien sûr installer le paquet postgis.

J'espère avoir bien décrit mon problème. J'ai peut être oublier une étape dans la configuration ...

Merci d'avance.

Dernière modification par darts (Wed 15 April 2009 11:05)

Hors ligne

 

#2 Wed 15 April 2009 11:15

Lionel B
Participant actif
Lieu: Macon
Date d'inscription: 5 Sep 2005
Messages: 83

Re: problème connexion PostgreSql QGIS

Bonjour,
La procédure normale pour initialiser la cartouche spatiale dans une base de données est
connection en tant que user postgres pour simplifier la gestion des accès (su - postgres )  puis exécuter :

createlang plpgsql votrebase
psql -f /chemin/lwpostgis.sql votrebase
psql -f /chemin/spatial_ref_sys.sql

Si vous n'avez pas pu exécuter le script lwpostgis.sql correctement, il doit y avoir un problème. Faites nous remonter le message d'erreur rencontré.
Cordialement

Hors ligne

 

#3 Wed 15 April 2009 11:33

darts
Juste Inscrit !
Date d'inscription: 15 Apr 2009
Messages: 9

Re: problème connexion PostgreSql QGIS

En effectuant la commande : psql -f /chemin/lwpostgis.sql votrebase
Je rencontre le message d'erreur suivant :

psql:/usr/share/postgresql-8.3-postgis/lwpostgis.sql:6460: ERREUR:  la transaction est annulée, les commandes sont ignorées jusqu'à la fin du bloc
de la transaction


Je l'ai x fois pour chaque fonction du script.
J'ai aussi essayé de créer la base "geometry_columns" grâce aux lignes de code dans lwpostgis.sql mais le message reste le même.

Hors ligne

 

#4 Wed 15 April 2009 11:40

Lionel B
Participant actif
Lieu: Macon
Date d'inscription: 5 Sep 2005
Messages: 83

Re: problème connexion PostgreSql QGIS

Le message n'est pas assez explicite. Mais je soupçonne que vous ayez oublié la commande
createlang plpsql votrebase
qui autorise l'uitilisation du langage procédural dans la base de données (le script lwpostgis.sql en a besoin).

Sinon, il faut aller voir dans le fichier de log de postgres pour trouver plus d'informations sur les raisons du plantage.
Dans une deuxième console, lancez la commande
tail -f /var/log/postgresql/postgresql-8.3-main.log
Puis relancer l'application du script lwpostgis.sql . Vous devriez alors voir une message d'erreur plus riche au moment du plantage.

Hors ligne

 

#5 Wed 15 April 2009 11:42

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1220
Site web

Re: problème connexion PostgreSql QGIS

Bonjour,

le langage plpgsql a-t-il était créé dans la base?

CREATE language plpgsql;

Cordialement,


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#6 Wed 15 April 2009 12:24

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: problème connexion PostgreSql QGIS

darts a écrit:

Bonjour,

Je travaille sous Debian et je n'arrive pas du tout à accéder à ma base de données postgres.
Sous QGIS, dans " Connexion PostGreSql " je configure ma connexion (le test est bon) mais lorsque que je veux ensuite connecter j'ai le message d'erreur suivant :

La connection à la base de donnée a réussi, mais aucune table n'est accessible.Le message d'erreur de la base de donnée est :
ERREUR:  le type « geometry » n'existe pas


J'ai lu plusieurs sujets dans cette partie du forum pour résoudre ce problème; j'ai vu qu'il fallait exécuter les scripts SQL (lwpostgis.sql et spatial_ref_sys.sql). Les tables geometry_columns et spatial_ref_sys sont créées et j'ai pu seulement valider le fichier spatial_ref_sys.sql.

J'ai bien sûr installer le paquet postgis.

J'espère avoir bien décrit mon problème. J'ai peut être oublier une étape dans la configuration ...

Merci d'avance.


Bonjour,

comme indiqué dans les autres reponses, installer les paquets Postgis n'installe pas postgis sur une base de données. Ca installe juste scripts SQL et bibliotheque partagée permettant de creer une base postgis.

Il faut donc ensuite, pour CHAQUE base sur laquelle on souhaite installer Postgis, lancer des commandes de creation de langage et de scripts SQL OU, creer une base dite 'template', contenant postgis, et a partir de laquelle on creera a loisir les autres bases "Postgis enabled":

Soit:

createlang -U <username> plpgsql mabase
psql -U <username> -f /chemin/lwpostgis.sql -d mabase
psql -U <username> -f /chemin/spatial_ref_sys.sql -d mabase

Soit:

createdb -U <username> template_postgis
createlang -U <username> plpgsql template_postgis
psql -U <username> -f /chemin/lwpostgis.sql -d template_postgis
psql -U <username> -f /chemin/spatial_ref_sys.sql -d template_postgis

puis, creation de sa base de travail a partir de ce template:

createdb -U <username> -T template_postgis ma_base

(ma_base contient alors les tables, fonctions, types etc. de PostGIS)

Concernant l'execution des fichiers SQL et les erreurs eventuelles, seule la premiere erreur est pertinentes, toutes les autres signifient juste que la transaction est annulée suite a la premiere erreur. Pour la debusquer "tranquillement", on peut rediriger la sortie de la commande psql dans un fichier, puis lire le debut du fichier:

psql -U username -f mon_fichier.sql -d ma_base > log.txt 2>&1

puis lire le fichier:
more log.txt

(le 2>&1 permettant de mettre dans le meme fichier a la fois les messages d'erreurs et les messages d'information).

Nicolas

Hors ligne

 

#7 Wed 15 April 2009 15:24

darts
Juste Inscrit !
Date d'inscription: 15 Apr 2009
Messages: 9

Re: problème connexion PostgreSql QGIS

Merci pour vos réponses, je suis parvenu à exécuter les scripts Sql. (Oubli du createlang ...)
J'ai néanmoins un dernier message sous QGIS:

La connection à la base de donnée a réussi, mais aucune table n'est accessible.

Veuillez vérifier si vous avez le droit d'effectuer une commande SELECT sur une table ayant une géométrie
PostGIS.


Je suis pourtant connecté avec un compte au rang administrateur sous pgAdmin possédant tous les droits.
Est ce que vous savez quel détail il reste à paramétrer ici ?

Dernière modification par darts (Wed 15 April 2009 15:25)

Hors ligne

 

#8 Wed 15 April 2009 15:35

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: problème connexion PostgreSql QGIS

Quels sont les droits des tables spatiales et geometry_columns ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#9 Wed 15 April 2009 15:45

darts
Juste Inscrit !
Date d'inscription: 15 Apr 2009
Messages: 9

Re: problème connexion PostgreSql QGIS

Sur ces 2 tables j'ai tous les droits suivants: select, insert, update, delete, references et trigger.

Hors ligne

 

#10 Wed 15 April 2009 15:55

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: problème connexion PostgreSql QGIS

Oui mais pour quel utilisateur ? Quel utilisateur utilises tu dans les différents cas ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#11 Wed 15 April 2009 16:01

darts
Juste Inscrit !
Date d'inscription: 15 Apr 2009
Messages: 9

Re: problème connexion PostgreSql QGIS

J'ai créée un utilisateur " administrateur " à qui j'ai donné tous ces droits et c'est avec " administrateur " que j'effectue la connexion sous QGIS.
Et j'effectue toutes les différentes opérations avec lui, il est aussi le propriétaire de ces tables.

Dernière modification par darts (Wed 15 April 2009 16:02)

Hors ligne

 

#12 Wed 15 April 2009 16:12

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: problème connexion PostgreSql QGIS

darts a écrit:

J'ai créée un utilisateur " administrateur " à qui j'ai donné tous ces droits et c'est avec " administrateur " que j'effectue la connexion sous QGIS.
Et j'effectue toutes les différentes opérations avec lui, il est aussi le propriétaire de ces tables.


creation avec PgAdmin ?
il y a bien eu des "grant select" ou "grant all" explicites sur les tables en question ?
Qui est le proprietaire des tables ? l'utilisateur administrateur ou postgres ?

Un bon test serait d'utiliser le meme utilisateur avec PgAdmin ou en console psql et de voir si tu peux lister le contenu des tables, y acceder.

Nico

Hors ligne

 

#13 Wed 15 April 2009 16:56

Guillaume Sueur
Participant assidu
Lieu: Toulouse
Date d'inscription: 23 Sep 2005
Messages: 331
Site web

Re: problème connexion PostgreSql QGIS

on ne sait jamais donc je me lance... Tu as bien inséré des données géographiques dans ta base spatiale ? Si oui, vois tu bien cette ou ces tables depuis PgAdmin ?

Guillaume

Hors ligne

 

#14 Wed 15 April 2009 16:56

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1220
Site web

Re: problème connexion PostgreSql QGIS

Les colonnes géométriques ont-elles bien été créées avec la fonction addgeometrycolumn() de postgis, qui renseigne entre autre la table geometry_columns ?

SELECT AddGeometryColumn('','nom_table','nom_colonne_geometrique',code_epsg_projection,'type_geometrie',nombre de dimensions);

Dernière modification par Mathieu BOSSAERT (Wed 15 April 2009 16:58)


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#15 Thu 16 April 2009 15:42

darts
Juste Inscrit !
Date d'inscription: 15 Apr 2009
Messages: 9

Re: problème connexion PostgreSql QGIS

Bon pour le moment j'ai chargé un fichier shp sous QGIS. Hop une belle carte avec plusieurs colonnes d'attributs. Mais ces données là ne sont pas stockées dans ma base de données (c'est un projet récupéré) et j'aimerai par exemple pouvoir ajouter des données à faire apparaître sur la carte.. (ajout/suppression de colonnes/lignes ... ) Et tout cela à partir de ma base bien sûr.
Est que cela est possible ?

Sinon à partir de la console pas de problème, j'ai effectué les grant sur mes tables, je peux faire le select sans problème, et mon " administrateur " est propriétaire des tables.

Hors ligne

 

#16 Thu 16 April 2009 18:44

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: problème connexion PostgreSql QGIS

darts a écrit:

Bon pour le moment j'ai chargé un fichier shp sous QGIS. Hop une belle carte avec plusieurs colonnes d'attributs. Mais ces données là ne sont pas stockées dans ma base de données (c'est un projet récupéré) et j'aimerai par exemple pouvoir ajouter des données à faire apparaître sur la carte.. (ajout/suppression de colonnes/lignes ... ) Et tout cela à partir de ma base bien sûr.
Est que cela est possible ?

Sinon à partir de la console pas de problème, j'ai effectué les grant sur mes tables, je peux faire le select sans problème, et mon " administrateur " est propriétaire des tables.


Oui, c'est tout a fait possible avec Qgis. edition des geometries, des attributs, ajout/suppression de colonnes.

(j'aime bien OpenJump aussi avec son plugin dbquery, qui permet d'executer des requetes SQL directement (mysql, oracle, postgis) et afficher les resultats graphiques (requetes renvoyant des geometries) dans l'application.

Nicolas

Hors ligne

 

#17 Fri 17 April 2009 10:03

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: problème connexion PostgreSql QGIS

Nicolas,

Il me semble que QGIs permette cela aussi wink mais peut être pas aussi puissant qu'OpenJUMP car limité à la clause WHERE, il me semble qu'il y a un plugin aussi pour réaliser des requêtes SQL.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#18 Fri 17 April 2009 17:48

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: problème connexion PostgreSql QGIS

Yves a écrit:

Nicolas,

Il me semble que QGIs permette cela aussi wink mais peut être pas aussi puissant qu'OpenJUMP car limité à la clause WHERE, il me semble qu'il y a un plugin aussi pour réaliser des requêtes SQL.

Y.


Merci pour cette info Yves, je vais regarder ça de plus prés.
Car effectivement, dans OpenJump, point besoin de tables existantes, toute requête est affichée, eventuellement graphiquement si elle contient des géométries.

Nico

Hors ligne

 

Pied de page des forums

Powered by FluxBB