Suite

Chargement par lots de plusieurs fichiers de formes sur Postgis

Chargement par lots de plusieurs fichiers de formes sur Postgis


Selon leshp2pgsqlaide, les options tomber, ajouter, créer et préparer sont mutuellement exclusifs. Donc, si je veux créer un tableau à partir d'une forme, puis ajouter plusieurs autres fichiers de formes, je fais quelque chose comme ce qui suit, en gardant un compteur pour indiquer si nous sommes en mode création ou ajout.

cnt=0 pour shp dans $(ls *.shp); do if [ $cnt -eq 0 ] ; puis shp2pgsql -s 27700 -c $shp schema.table_name | psql -h localhost db else shp2pgsql -s 27700 -a $shp schema.table_name | psql -h localhost db fi ((cnt++)) fait

Cela fonctionne, comme prévu, mais je me suis souvent demandé s'il y avait un moyen plus simple ?


Si vous pouvez utiliser ogr2ogr, il ignorera les options de création lors de l'ajout et ignorera les options d'ajout lors de la création.

pour shp dans $(ls *.shp); do ogr2ogr -f "PostgreSQL" PG:dbname=databasename -append -a_srs 27700 -nln schema.table_name $shp done

Ou dans windows en ligne de commande :

pour /R %f dans (*.shp) do ogr2ogr -f "PostgreSQL" PG:dbname=databasename -append -nln schema.table_name "%f"

Voir la vidéo: QGIS: How to join tabular data to a layer using the attribute table