Przesyłanie treści Geopackage do PostgreSQL

15

Jako trochę tła chcemy odejść od używania plików kształtów. Już zaczęliśmy korzystać z Geopackage do pracy na komputerze (QGIS / ArcGIS), ale często wymagamy przesyłania danych do naszych baz danych PostgreSQL.

Wiem, że możesz przesyłać treści Geopackage do Postgres przy użyciu QGIS, ale zastanawiam się, czy istnieją narzędzia wiersza polecenia podobne do shp2pgsql do przesyłania geopakietów lub tabel w geopakładach do Postgres? Zakładam, że być może ogr2ogr, ale nie mogę znaleźć dokumentacji.

James Norris
źródło

Odpowiedzi:

10

Ten samouczek pokazuje, jak importować geopackges do postgresów z ogr2ogr, takich jak:

ogr2ogr -f PostgreSQL "PG:dbname=gadm" DNK_adm.gpkg

Uwaga: importowanie do PostgreSQL w ten sposób zamieni wielkość liter w nazwach pól w danych GeoPackage na małe litery w tabeli PostgreSQL. Aby zachować wielkość liter, musisz użyć lcoopcji takiej jak:

ogr2ogr -f PostgreSQL "PG:dbname=gadm" DNK_adm.gpkg -lco LAUNDER=NO
Mazu_R
źródło
To jest świetne. Mam ogr2ogr współpracujący z .gpkg. Teraz muszę wykonać przetwarzanie końcowe dla każdej tabeli utworzonej z gpkg w postgres w moim skrypcie wiersza poleceń i muszę wyodrębnić nazwę każdej tabeli z gpkg. Widzę, że ogrinfo wyświetla tabele, ale są jakieś pomysły, jak je przekształcić w zmienną?
James Norris,
5

W QGIS Master trwają prace (np. Tu i tutaj, aby „naprawić” narzędzie w QGIS (Importuj wektor do bazy danych Postgis - ...), która generuje parametry wiersza poleceń dla OGR2OGR do użycia, szczególnie dla Postgis, który wydaje się zepsułem się z QGIS 3. Mam też zaplanowane kolejne żądanie ściągnięcia, aby uzyskać więcej poprawek i dodatkowych opcji. Jeśli możesz poczekać tydzień lub mniej więcej i użyć wzorca lub około 3 miesięcy i użyć 3.4, to pozwoli ci uniknąć konieczności wprowadzania poleceń parametry linii ręcznie i powinny działać dla wielu różnych formatów plików, w tym geopackage.

Stev_k
źródło
2

Korzystając z samouczka na tym łączu, lepiej dodać do linii poleceń GDAL (ogr2ogr) kolejne opcje.

ogr2ogr -f PostgreSQL "PG:user=youruser password=yourpassword dbname=yourdbname" yourgeopackage.gpkg

Mi to pasuje.

Yinneth Castiblanco
źródło