Subir contenido de Geopackage a PostgreSQL


15

Como un poco de trasfondo, buscamos hacer una transición lejos del uso de shapefiles. Ya hemos comenzado a usar Geopackages para el trabajo de escritorio (QGIS / ArcGIS), pero a menudo tenemos el requisito de cargar datos en nuestras bases de datos PostgreSQL.

Soy consciente de que puede cargar contenido de Geopackage a Postgres usando QGIS, pero me pregunto si hay alguna utilidad de línea de comandos similar a shp2pgsql para cargar geopackages o tablas en geopackages a Postgres. Supongo que posiblemente ogr2ogr pero no puedo encontrar la documentación.

Respuestas:


10

Este tutorial muestra cómo importar geopackges en postgres con ogr2ogr como:

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

Tenga en cuenta que la importación a PostgreSQL como esta convertirá el caso de los nombres de campo en sus datos de GeoPackage a minúsculas en la tabla PostgreSQL. Para mantener el caso, necesitaría usar la lcoopción como:

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

Esto es genial. Tengo ogr2ogr trabajando con el .gpkg. Ahora necesito realizar un procesamiento posterior en cada una de las tablas que se crean a partir del gpkg en postgres en mi script de línea de comandos y necesito extraer cada nombre de tabla del gpkg. Puedo ver ogrinfo enumerar las tablas, pero ¿alguna idea sobre cómo puedo obtener estas en una variable?
James Norris el

5

Hay trabajo en curso en QGIS master (por ejemplo, aquí y aquí para 'arreglar' la herramienta en QGIS (Importar vector en la base de datos de Postgis - ...) que genera parámetros de línea de comando para OGR2OGR para su uso, específicamente para Postgis, que parece he roto con QGIS 3. También tengo otra solicitud de extracción planificada para más arreglos y opciones adicionales. Si puede esperar una semana más o menos, y usa master, o 3 meses más o menos y usa 3.4, eso evitará que tenga que ingresar el comando parámetros de línea manualmente, y deberían funcionar para muchos formatos de archivo diferentes, incluido el geopaquete.


2

Usando el tutorial en este enlace, es mejor agregar a la línea de comando GDAL (ogr2ogr) las siguientes opciones.

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

Esto funciona para mi.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.