Pages: 1
- Sujet précédent - [postgresql] problème import shape/sql dans base de données - Sujet suivant
#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.
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
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.
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
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.
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
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
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
Mais non: ce SGBD est super simple (en tout cas comparé a d'autres...)
Hors ligne
#9 Thu 12 August 2010 13:59
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
Pages: 1
- Sujet précédent - [postgresql] problème import shape/sql dans base de données - Sujet suivant