8 votos

¿Cargar Shapefiles en una base de datos remota de PostGIS usando la línea de comandos?

¿Podemos importar un Shapefile desde un sistema que no tiene instalado PostgreSQL (máquina cliente) a un sistema que tiene instalado PostGIS?

Estoy teniendo problemas con 'shp2pgsql' y 'psql' ya que ambos no son reconocidos en la máquina cliente.

Estoy probando esto usando la consola.

14voto

tobes Puntos 19

No es una solución de línea de comandos, pero ya que etiquetó la pregunta QGIS:

Recomiendo usar el plugin QGIS PostGIS Manager que es una GUI para shp2pgsql que permite subir Shapefiles a una base de datos remota.

enter image description here

10voto

Xavier Nodet Puntos 2498

Creo que si tienes qgis instalado tendrás también ogr2ogr (Se proporciona con el paquete gdal-bin). Con el siguiente comando crearás una tabla llamada yousahpefile en tu base de datos:

ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;

Hay algunas soluciones si encuentra problemas con la codificación.

0 votos

Excepto sustituir localhost con la dirección IP de la base de datos PostGIS remota, por ejemplo host=192.168.123.12 o lo que sea

4voto

Adam Ernst Puntos 6939

Tendrá que instalar shp2psql en la máquina cliente o copiar el shapefile a una máquina que lo tenga instalado.

1voto

dlanod Puntos 8661

Creo que sólo tienes que copiar los archivos correspondientes. He hecho esto en ewindows. No he probado en Linux. Para windows copio el shp2pgsql.exe, libpq.dll, libiconv-2.dll, comerr32.dll, msvcr71.dll , un par de otros pero esos son los principales -- estos se encuentran en la carpeta bin de PostgreSQL

Los de Linux serían diferentes pero libpq y shp2pgsql son definitivamente necesarios

0voto

Puedes usar shp2pgsql en tu copia local de la base de datos, crear un volcado de la nueva base de datos y subirlo, ... o instalar shp2pgsql en la máquina remota, scp el shapefile sobre, y shp2pgsql de allí (como iant recomienda).

Según la información disponible, no hay manera de hacer esto a distancia en un solo paso. Esto se debe a que, aunque tenga acceso a la base de datos remota desde donde se encuentre, las funciones que está utilizando (como shp2pgsql) son las que están instaladas en el servidor, independientemente de lo que haya en su máquina local.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X