Importujesz .shp do PostgreSQL?


14

Chcę zaimportować plik shp do postgreSQL. Najpierw tworzę plik sql, a następnie uruchamiam PostgreSQL. Aby utworzyć plik sql, uruchamiam polecenie w Windows cmd:

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

a następnie uruchom:

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

ale wynikiem jest:

psql: worldcountries.sql: 21: ERROR: funkcja addGeometrycolumn (nieznany, nieznany, nieznany, nieznany, nieznany, liczba całkowita) nie istnieje

Odpowiedzi:


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

Wygląda na to, że PostGIS nie jest jeszcze zainstalowany. PostGIS to rozszerzenie Postgres, które umożliwia korzystanie z plików geograficznych.

Zainstaluj go, a import będzie działał dobrze.


3
Polecenie to "CREATE EXTENSION postgis;"postgis.net/docs/… .
user30184,

1
@ user30184 Absolutnie poprawne, ale pamiętaj, że zakłada to PostgreSQL 9.1 lub nowszy. (Moim zdaniem nie ma powodu, aby używać czegoś starszego.)
jpmc26,


1

Możesz użyć wbudowanej wtyczki importu, która jest instalowana podczas instalowania rozszerzenia PostGis w PostgreSQL. Możesz go znaleźć pod Wtyczkami w menu i nazywa się PostGIS Shapefile i moduł ładujący DBF

obejrzyj ten film na youtube jako przykład


0

Masz inną projekcję w swoim psql; a projekcja nie jest konieczna. Czy istnieje schemat, do którego chcesz dodać plik kształtu?

To powinno działać:

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

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

3
-pbo psqlmówi port serwera, a nie rzut. Projekcja zostaje osadzona w skrypcie SQL. Patrz podręcznik grzywny dla psql„s zachowanie. W takim przypadku port określony przez OP nie jest domyślnym portem, więc jest wymagany. Ogólnie odradzałbym także przechowywanie kształtu bez wystającego elementu. Ogranicza to możliwość zmiany projekcji, co może być pomocne w uzyskiwaniu dokładniejszych obliczeń.
jpmc26,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.