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é ?

#1 Tue 09 July 2013 10:50

Judicael87
Participant occasionnel
Date d'inscription: 1 Aug 2012
Messages: 10

Problème de GID et clé primaire sous postgis

Bonjour à tous

J'ai une petite préoccupation qui me fait tourner les méninges depuis  24h et j'espère trouver ici un dénouement comme d'habitude.
 
Alors:

Je travaille sur la mise en place d'un SIG dont les couches sont stockées sous Postgresql/Postgis. Cette base de données doit interagir avec d'autres bases constituées plutôt de données alpha-numériques. 

Pour cela, j'ai mis en place un modèle conceptuel de données dans lequel j'ai bien évidemment créé des relations entre les différentes tables, aussi bien spatiales qu'alphanumériques. 

Le problème qui se pose maintenan est que lorsque j'importe maintenant mes tables shp avec Qgis (DB Manager) vers postgis, je remarque qu'il se cré, à chaque fois, une clé primaire GID qui génère des indexes spatiales automatiquement, ce qui est bien en soit,  mais tres embêtant pour moi car je ne peux plus mettre en place l'architecture qui avait été pensée en amont, ni utiliser d'autre champs comme clé primaire. J'ai lu pas mal de docs sur le web mais je n'arrive pas a trouvé une solution adéquate.

Mes préoccupations sont donc celles-ci:

Le GID doit il obligatoirement être la clé primaire pour une table sous postgis??
peut on changer cette clé primaire en utilisant un autre champs de la tabe sur lequel des relations ont été pensées??

Sinon Que pouvez vous me proposer comme solution, n'hésiter pas à me réorienter s'il le faut.

Je rappel que je travail sous QGIS 1.8, postgres 9.1.8, postigis 1.5.3

Merci d'avance pour vos interventions.

Cordialement

Hors ligne

 

#2 Tue 09 July 2013 11:07

sigdu80
Participant actif
Date d'inscription: 2 Sep 2010
Messages: 112

Re: Problème de GID et clé primaire sous postgis

Bonjour Judicael87,


Le gid ne doit pas être obligatoirement la clé primaire d'une table postgis.
Plus globalement sous postgresql (comme dans tout SGBDR normalement), tu mets la clé primaire sur le/les champs que tu souhaites, du moment que cela répond à la contrainte d'unicité.

J'ai regardé l'option db Manager que je connaissais pas dans QGis, c'est sympa mais limité, on ne peut que consulter, on est d'accord ? D'ailleurs, dans tes explications, il y a quelque chose qui m'échappe, tu dis utiliser db manager pour importer des données de QGis dans Postgis. C'est plutôt avec l'outil Spit non ?
As-tu installé/utilisé pgAdmin ?
Cela te permettra de changer la clé primaire comme tu le souhaites.

Dernière modification par sigdu80 (Tue 09 July 2013 11:10)

Hors ligne

 

#3 Tue 09 July 2013 11:16

simo lay
Participant assidu
Date d'inscription: 8 Dec 2011
Messages: 172

Re: Problème de GID et clé primaire sous postgis

je rejoins sigdu80, sur le faite que le gid n'est pas obligatoirement la clé primaire, une fois vous couches sont importer dans la base vous pouvez les virer et définir les les clé selon le MCD que vous avez.

Hors ligne

 

#4 Tue 09 July 2013 11:31

sigdu80
Participant actif
Date d'inscription: 2 Sep 2010
Messages: 112

Re: Problème de GID et clé primaire sous postgis

Oui, tu peux tout changer (nom de la table/champs, clé primaire, ajout/suppression contraintes de vérif des geoms, méthode d'index).
Je le fais souvent car j'ai déjà voulu changer quelque éléments dans la fenêtre SPIT et cela a généré des erreurs. Du coup, je ne touche plus à cette interface, le laissant importer dans postgis et je fais mes modifs dans PgAdmin.


Warning : fais attention si tu utilises le db manager de QGIS et PgAdmin en même temps. Le db manager semble verrouillé (même en lecture) les tables que tu consultes.
Cela faisait planter mon pgadmin sans même un message d'erreur. J'ai fermé le projet QGIS et tout est rentré dans l'ordre.

Hors ligne

 

#5 Tue 09 July 2013 12:48

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3928

Re: Problème de GID et clé primaire sous postgis

Bonjour,

sigdu80 a écrit:

Bonjour Judicael87,

J'ai regardé l'option db Manager que je connaissais pas dans QGis, c'est sympa mais limité, on ne peut que consulter, on est d'accord ?


Pas vraiment smile ! DBManager te permet de consulter mais aussi d'importer dans QGis (un simple glisser déposer et c'est bon). Il te permet même de faire des requêtes préalables (aussi bien attributaires que spatiales, avec les fonctions de postgis notamment) pour n'importer dans ton projet que ce qui t'intéresse. (tout cela, bien entendu selon les niveaux de droit). Apparemment on peut même y créer tables et schémas, les déplacer et autres mais perso, je fais ça avec PgAdmin.

sigdu80 a écrit:

Warning : fais attention si tu utilises le db manager de QGIS et PgAdmin en même temps.


Pour ma part, pas de problème particulier rencontré dans l'utilisation simultanée des deux outils (je suis sous Postgres 9.2, Postgis 2, QGis1.8)


Pour revenir à l'interrogation du début, autant il est vrai qu'un champ ou ensemble de champ peut être clé primaire s'il est unique et non null, autant il me semble que dans QGIS, il vous faut un champ à valeurs uniques et non nulles (qui n'est pas forcément la clé primaire d'identification de vos données dans la relation avec les autres tables).

Dernière modification par SANTANNA (Tue 09 July 2013 12:53)

Hors ligne

 

#6 Thu 11 July 2013 11:41

Judicael87
Participant occasionnel
Date d'inscription: 1 Aug 2012
Messages: 10

Re: Problème de GID et clé primaire sous postgis

Bonjour et merci à tous pour vos interventions constructives. smile

Je vais suivre les différentes recommandations et vous tenir au courant tres vite.

Sigdu80

Comme l'a dit SANTANA, DB manager est un nouveau plugin de gestion de base de données développé dans QGIS depuis sa version 1.8. Son utilisation est assez facile, un simple glisser déplacer permet d'intégrer les données dans la base postgis. Sans trop m'avancer, j'aurais appris qu'il est appelé a remplacé SPIT dans les prochaine version de développement.

J'utilise également pgadminIII pour l'aministration de ma base de donnée et je n'ai pas encore rencontré de conflit avec DB manager.

Encore une fois merci beaucoup.

Hors ligne

 

#7 Thu 11 July 2013 12:33

sigdu80
Participant actif
Date d'inscription: 2 Sep 2010
Messages: 112

Re: Problème de GID et clé primaire sous postgis

Bonjour,


oui, dis en plus quand tu auras testé des choses.
C'est moi qui doit avoir la poisse avec DB Manager, il était en conflit avec PgAdmin.


j'ai regardé un peu ce DB Manager.
J'ai testé le glisser-déposer (pas d'autre moyen vu par les menus). Par contre, je n'ai pas réussi à importer mon shapefile.
Il m'affiche des erreurs : Erreur "enforce_geotype_geom"

J'ai donc mis de côté la définition de création SQL de la table, puis je l'ai effacé.
J'ai essayé avec SPIT, et là, l'importation s'est bien faite.
J'ai donc comparé la définition de création de table via les 2 plugins et DB Manager ajoute une contrainte de vérification supplémentaire à SPIT :
CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 'POLYGON'::text OR geom IS NULL),

Sachant que le shapefile contient des MULTIPOLYGON, c'est pour cela que çà bloque.
Dans une fenêtre "Importer une couche vecteur", une option aurait peut-être résolu le problème mais elle est grisée. Elle s'appelle "Créer des géométries simples au lieu de multiparties".
Est-ce que cela aurait concerné mon cas ? Si oui, comment l'activer, si non : à quoi sert-elle ?


Donc DB Manager va remplacer SPIT (il y a des options qui ne semblent pas bien fonctionner), très bien mais j'espère que ce genre de choses fonctionnera avant de faire disparaître SPIT qui fait a minima ce que je souhaite, c'est à dire importer des shp dans PostgreSQL/Postgis.

Hors ligne

 

#8 Thu 11 July 2013 19:06

ppluvinet
Participant assidu
Lieu: VALENCE
Date d'inscription: 6 Aug 2007
Messages: 611

Re: Problème de GID et clé primaire sous postgis

Bonjour,
avez vous déjà utilisé shp2pgsql qui permet de paramétrer un certain nombre de chose :
http://www.bostongis.com/pgsql2shp_shp2 … ide_20.bqg contre

Par contre, cela se fait dans l'invite de commande ou dans un terminal et pas à partir de QGIS...
Je ne sais pas si ca correspond à vos besoins...


Pascal PLUVINET

Hors ligne

 

#9 Fri 12 July 2013 14:11

Judicael87
Participant occasionnel
Date d'inscription: 1 Aug 2012
Messages: 10

Re: Problème de GID et clé primaire sous postgis

Bonjour

Tu as raison sur les contraintes de DB Manager.  Cla me fait pareil. Il bloc également les mulilignes. J'espère qu'il sera amélioré dans les prochaines versions parce qu'il est assez symp je trouve.

Par contre, J'ai remarqué un truc, c'est que qu'il ne faut pas supprimer le GID de sa table à cause des index spatiales crées . On peut changer à volonter les contraintes.
Ce qui m'est arrivé est le suivannt: En gros, je devait publier mes données sur un serveur carto pour les afficher sur un portail WEB. Quand je supprime le GID, mes données ne s'affichent pas sur le serveur carto, alors que quand je les laisse, les données s'affichent correctement.

SIGDU80, de quel feneetre tu parle, c'est dans quel menu?

Cordialement

Hors ligne

 

#10 Fri 12 July 2013 17:10

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3928

Re: Problème de GID et clé primaire sous postgis

Bonjour,

ppluvinet a écrit:

Bonjour,
avez vous déjà utilisé shp2pgsql qui permet de paramétrer un certain nombre de chose :
http://www.bostongis.com/pgsql2shp_shp2 … ide_20.bqg contre

Par contre, cela se fait dans l'invite de commande ou dans un terminal et pas à partir de QGIS...
Je ne sais pas si ca correspond à vos besoins...


PGAdmin offre d'ailleurs l'interface graphique dans ses plugins "Postgis shapefile Import/Export Manager" (http://suite.opengeo.org/docs/dataadmin … oader.html)

Hors ligne

 

Pied de page des forums

Powered by FluxBB