Wenn Sie einen Windows-Computer haben, können Sie good 'ol CMD.EXE
mit ein paar esoterischen for-Schleifen verwenden. Stellen Sie sicher, dass Sie dies in einem "enthaltenen" Verzeichnis mit nur den shp / sql-Dateien tun, die Sie laden müssen.
Erstellen Sie im ersten Schritt die SQL Loader-Dateien (ich habe auch angenommen, dass Sie Lat / Long WGS84-Daten mit 4326 haben. Aktualisieren Sie diese auf Ihre SRS):
for %f in (*shp) do shp2pgsql -s 4326 %f public.%~nf > %~nf.sql
Überprüfen Sie dann Ihre SQL-Dateien, um sicherzustellen, dass sie gut aussehen, und führen Sie dann eine ähnliche Schleife durch:
for %f in (*sql) do psql -h myserver -d mydb -U myuser -f %f > nul
Das bash
Äquivalent für POSIX-Benutzer (Linux, Mac OS X usw.) lautet etwa:
for f in *.shp
do
shp2pgsql -s 4326 %f public.`basename $f .shp` > `basename $f .shp`.sql
done
dann
for f in *.sql
do
psql -h myserver -d mydb -U myuser -f $f > /dev/null
done
oder beide Teile werden zu einer Schleife zusammengefasst, wenn Sie die vorläufigen .sql
Dateien nicht aufbewahren müssen :
for f in *.shp
do
shp2pgsql -s 4326 %f public.`basename $f .shp` | psql -d mydb > /dev/null
done