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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 11 August 2010 14:07

babef eric
Participant occasionnel
Lieu: Agde
Date d'inscription: 22 Jul 2010
Messages: 21
Site web

[postgresql] problème import shape/sql dans base de données

Bonjour à vous tous,

Je vous expose mon problème :

Je dois importer un fichier shape dans une base de données sous postgresql, pour par la suite effectuer des traitements avec cartoweb3.
Pour y parvenir, je transforme le shape en sql. Cette manipulation se passe bien. Ensuite, et là commence mes problèmes, il faut importer ce fichier sql en table. J'utilise cette ligne de commande :

psql -d mabase -f monfichiersql

Et là, j'obtiens une montagne d'erreurs, je vous laisse un petit aperçu en pj.

Si quelqu'un à la solution à mon problème en peut m'en faire part, il sera mon héros.

Je vous remercie d'avance.

ps : si ce problème a déjà été évoqué, veuillez m'excuser si je le relance.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Eric BABEF
Technicien SIG - GPMDLR

Hors ligne

 

#2 Wed 11 August 2010 14:47

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

Re: [postgresql] problème import shape/sql dans base de données

babef eric a écrit:

Bonjour à vous tous,

Je vous expose mon problème :

Je dois importer un fichier shape dans une base de données sous postgresql, pour par la suite effectuer des traitements avec cartoweb3.
Pour y parvenir, je transforme le shape en sql. Cette manipulation se passe bien. Ensuite, et là commence mes problèmes, il faut importer ce fichier sql en table. J'utilise cette ligne de commande :

psql -d mabase -f monfichiersql

Et là, j'obtiens une montagne d'erreurs, je vous laisse un petit aperçu en pj.

Si quelqu'un à la solution à mon problème en peut m'en faire part, il sera mon héros.

Je vous remercie d'avance.

ps : si ce problème a déjà été évoqué, veuillez m'excuser si je le relance.


Bonjour,

Premier conseil: si vous n'avez pas besoin des fichiers SQL, pour les retraiter par exemple, le plus simple est de charger les shapes en base en une seule commande:

shp2pgsql ...shp ... | psql -d mabase

Ensuite, les messages d'erreurs envoyés ne nous donnent pas d'indication: il faut donner le premier message d'erreur: tous les autres (les 59944 autres) disent juste qu'il y a eu un premier probleme.

Pour ce faire, le plus simple est de rediriger la commande dans un fichier de texte, que l'on peut lire par la suite, soit, au final, la commande suivante:

Code:

shp2pgsql -I ...shp lieudit | psql -d mabase  > lieudit.txt 2>&1

Envoyez alors le premier message d'erreur de ce fichier, que l'on puisse voir ou le bât blesse

Nico

PS. je vous conseille egalement d'attribuer un systeme de projection a la table créée a partir du shape, avec l'option -s <SRID>. Ca permet de faire des traitements avec des données dans differentes projections.
Et eventuellement de passer par le format de dump postgresql, bcp, bcp plus rapide pour inserer des données que la commande insert (option -D a ajouter shp2pgsql)

Dernière modification par Nicolas Ribot (Wed 11 August 2010 14:49)

Hors ligne

 

#3 Thu 12 August 2010 07:21

babef eric
Participant occasionnel
Lieu: Agde
Date d'inscription: 22 Jul 2010
Messages: 21
Site web

Re: [postgresql] problème import shape/sql dans base de données

Bonjour,

Je vous remercie pour votre réponse et vos précieux conseils.

J'ai effectué la première manip (shp2pgsql ...shp ... | psql -d mabase) et j'ai eu les mêmes erreurs. Pour vérifier si c'était un problème de données, j'ai exporter une table, dans une base déjà présente qui fonctionne bien, en shape. Puis, j'ai recommencé la même manip mais le résultat est toujours négatif.

Je vous envoie un fichier txt qui détaille les erreurs, il y a pas mal de termes "unknown", dois-je modifier le shape ? (qui en passant ne pose aucun problème dans un SIG)

Bien cordialement.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Eric BABEF
Technicien SIG - GPMDLR

Hors ligne

 

#4 Thu 12 August 2010 09:52

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

Re: [postgresql] problème import shape/sql dans base de données

babef eric a écrit:

Bonjour,

Je vous remercie pour votre réponse et vos précieux conseils.

J'ai effectué la première manip (shp2pgsql ...shp ... | psql -d mabase) et j'ai eu les mêmes erreurs. Pour vérifier si c'était un problème de données, j'ai exporter une table, dans une base déjà présente qui fonctionne bien, en shape. Puis, j'ai recommencé la même manip mais le résultat est toujours négatif.

Je vous envoie un fichier txt qui détaille les erreurs, il y a pas mal de termes "unknown", dois-je modifier le shape ? (qui en passant ne pose aucun problème dans un SIG)

Bien cordialement.


Bonjour,

Hmm, ce me semble que postgis n'est pas installé sur la base en question, pour ne pas connaitre addGeometryColumn.
(les unknown traduisent juste le fait que PG ne reconnait pas le type des données dans la commande:
AddGeometryColumn('','parcelles','the_geom','-1',...).)

Pouvez-vous verifier l'installation de postgis sur cette base (postgis doit s'installer sur CHAQUE base de données postgresql, ce n'est pas global a l'instance), en tapant la commande:

psql -d mabase -c "select postgis_full_version()"

et nous dire le resultat de cette commande ?

Nicolas

Hors ligne

 

#5 Thu 12 August 2010 10:25

babef eric
Participant occasionnel
Lieu: Agde
Date d'inscription: 22 Jul 2010
Messages: 21
Site web

Re: [postgresql] problème import shape/sql dans base de données

Effectivement, postgis n'est pas chargé dans ma base de données puisque j'ai comparé la base existante et la mienne et le résultat n'est pas le même (cf pj).

Je dois charger les extensions postgis non ? Je crois que ces lignes de commandes peuvent me le permettre :

psql –d SIG –f C:\postgresl\share\contrib\lwpostgis.sql
psql –d SIG –f C:\postgresl\share\contrib\spatial_ref_sys.sql



Si c'est le cas, j'ai déjà essayé et le résulat n'est pas bon, puisque le chemin n'est pas le même, notre installation de postgresql ne se trouve pas à la racine.
Peut être que je me trompe.

Merci pour cette réponse rapide.

Bien cordialement.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Eric BABEF
Technicien SIG - GPMDLR

Hors ligne

 

#6 Thu 12 August 2010 10:40

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

Re: [postgresql] problème import shape/sql dans base de données

babef eric a écrit:

Effectivement, postgis n'est pas chargé dans ma base de données puisque j'ai comparé la base existante et la mienne et le résultat n'est pas le même (cf pj).

Je dois charger les extensions postgis non ? Je crois que ces lignes de commandes peuvent me le permettre :

psql –d SIG –f C:\postgresl\share\contrib\lwpostgis.sql
psql –d SIG –f C:\postgresl\share\contrib\spatial_ref_sys.sql



Si c'est le cas, j'ai déjà essayé et le résulat n'est pas bon, puisque le chemin n'est pas le même, notre installation de postgresql ne se trouve pas à la racine.
Peut être que je me trompe.

Merci pour cette réponse rapide.

Bien cordialement.


Oui, vous devez charger ces extensions, la ligne de commande est parfaite pour ca.

Je ne suis pas sur de comprendre votre probleme de chemin.
Il faut mieux mettre le chemin complet entre double quotes, histoire que windows soit content.
Je note aussi un "C:\postgresl\", n'est-ce pas plutot: "C:\postgresQl\" ? (le q manque)

En gros, il faut localiser le chemin complet vers postgis.sql et charger ce fichier dans la base sur laquelle on veut installer postgis.

Je vous conseille egalement de passer a une version recente de postgis: le lwpostgis.sql fait reference a une version 1.3 ou 1.4.
La 1.5 apporte bcp par rapport a ces anciennes versions.

Nicolas

Hors ligne

 

#7 Thu 12 August 2010 11:52

babef eric
Participant occasionnel
Lieu: Agde
Date d'inscription: 22 Jul 2010
Messages: 21
Site web

Re: [postgresql] problème import shape/sql dans base de données

SUPER, ça marche nickel !!!
Merci beaucoup pour le GROS coup de main et surtout pour le partage d'informations.
Mais je ne préfère pas vous dire au revoir car ce SGBDR est assez complexe.

Bien cordialement.


Eric BABEF
Technicien SIG - GPMDLR

Hors ligne

 

#8 Thu 12 August 2010 12:05

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

Re: [postgresql] problème import shape/sql dans base de données

babef eric a écrit:

SUPER, ça marche nickel !!!
Merci beaucoup pour le GROS coup de main et surtout pour le partage d'informations.
Mais je ne préfère pas vous dire au revoir car ce SGBDR est assez complexe.

Bien cordialement.


De rien smile
Mais non: ce SGBD est super simple (en tout cas comparé a d'autres...)

Hors ligne

 

#9 Thu 12 August 2010 13:59

ThomasG
Membre
Lieu: Nantes
Date d'inscription: 9 Sep 2005
Messages: 947
Site web

Re: [postgresql] problème import shape/sql dans base de données

Bonjour,

Vous pouvez généralement allez plus vite en passant par un modèle PostGIS.
Sous Windows, avec PGAdmin III, il faut faire ajouter base de données puis choisir dans Modèle le template_postgis.
En ligne de commande

Code:

createdb -O MON_UTILISATEUR -T template_postgis MA_BASE

Si vous êtes sous Linux, voir http://geoetic.net/index.php?view=GeoDjango , étape 4
Car sauf changement , ce modèle n'existe pas par défaut sous Linux et il faut le créer (si nécessaire changer lwpostgis.sql en postgis.sql comme évoqué par Nicolas Ribot)

Le template est un moyen d'éviter de recharger pour chaque base le code SQL situé dans le répertoire contrib si vous savez qu'elle sera spatiale.

Cordialement

ThomasG

Hors ligne

 

#10 Thu 10 October 2013 18:06

Pascal Boulerie
Participant assidu
Lieu: France
Date d'inscription: 12 Sep 2005
Messages: 2947
Site web

Re: [postgresql] problème import shape/sql dans base de données

La discussion suivante peut être utile pour savoir comment créer - quand elle n'existe pas au préalable - la base template_postgis , à l'aide de la commande createdb lancée en ligne de commande (il y a un aide-mémoire très détaillé) :
http://georezo.net/forum/viewtopic.php?id=78916


« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)

Hors ligne

 

Pied de page des forums

Powered by FluxBB