.Shp nach PostgreSQL importieren?


13

Ich möchte eine shp-Datei nach postgreSQL importieren. Zuerst erstelle ich eine SQL-Datei und starte dann PostgreSQL. Um eine SQL-Datei zu erstellen, führe ich diesen Befehl in Windows Cmd aus:

shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql

und dann laufen:

psql -d postgres -U postgres -p 4321 -f worldcountries.sql

aber das Ergebnis ist:

psql: worldcountries.sql: 21: FEHLER: Funktion addGeometrycolumn (unbekannt, unbekannt, unbekannt, unbekannt, unbekannt, ganzzahlig) existiert nicht

Antworten:


13
ERROR: **function addGeometrycolumn**(unknown, unknown, unknown, unknown,unknown, integer) does not exist

Es scheint, dass PostGIS noch nicht installiert ist. PostGIS ist eine Erweiterung von Postgres, die die Verwendung von geografischen Dateien ermöglicht.

Installieren Sie es und Ihr Import wird gut funktionieren.


3
Und der Befehl lautet "CREATE EXTENSION postgis;"postgis.net/docs/… .
user30184

1
@ user30184 Absolut korrekt, aber beachten Sie, dass dies PostgreSQL 9.1 oder höher voraussetzt. (Meiner Meinung nach gibt es kaum einen Grund, etwas Älteres zu verwenden.)
jpmc26


1

Sie können das eingebaute Import-Plugin verwenden, das installiert wird, wenn Sie die PostGis-Erweiterung in PostgreSQL installieren. Sie finden es unter Plugins im Menü und heißt PostGIS-Shapefile und DBF-Loader

Sehen Sie sich dieses YouTube- Video als Beispiel an


0

Sie haben eine andere Projektion in Ihrem psql; und eine Projektion ist nicht notwendig. Gibt es ein Schema, zu dem Sie die Formdatei hinzufügen möchten?

Das sollte funktionieren:

shp2pgsql -s 4326 -I worldcountries.shp schema.worldcountries > dr_worldcountries.sql

psql -f worldcountries.sql -h [host] -d [database] -U postgres

3
-pfor gibt psqlden Port des Servers an, nicht die Projektion. Die Projektion wird in das SQL-Skript eingebettet. Informationen zum psqlVerhalten finden Sie im Handbuch . In diesem Fall ist der vom OP angegebene Port nicht der Standardport, sodass er erforderlich ist. Ich würde auch generell davon abraten, eine Form ohne Projektion zu speichern. Dies schränkt Ihre Fähigkeit ein, Projektionen zu ändern. Dies kann hilfreich sein, um genauere Berechnungen zu erhalten.
jpmc26
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.