16.3. Lesson: Importação e Exportação

É claro que um banco de dados com nenhuma maneira fácil de migrar os dados para ele e para fora dele, não teria de muita utilidade. Felizmente, há uma série de ferramentas que lhe permitem mover facilmente de dados de dentro e de fora do PostGIS.

16.3.1. shp2pgsql

shp2pgsql é uma ferramenta de linha de comando para importar o ESRI Shapefile para o banco de dados. No Unix, você pode usar o seguinte comando para importar uma nova tabela PostGIS:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> | \
  psql -d <databasename> -h <hostname> -U <username>

No Windows, você deve executar o processo de importação em duas etapas:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> > import.sql
psql psql -d <databasename> -h <hostname> -U <username> -f import.sql

Você poderá encontrar este erro:

ERROR:  operator class "gist_geometry_ops" does not exist for access method
"gist"

Este é um problema conhecido sobre a criação in situ de um índice espacial para os dados que você está importando. Para evitar o erro, exclua o parâmetro :kbd: -i. Isto significa que nenhum índice espacial está sendo criado diretamente, e você terá que criá-lo no banco de dados após os dados terem sido importados. (A criação de um índice espacial será abordada na próxima lição.)

16.3.2. pgsql2shp

O pgsql2shp é uma ferramenta de linha de comando para exportar pesquisas, seleção de tabelas, exibições ou SQL do PostGIS. Para fazer isso no Unix:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> <databasename> <table | view>

Para exportar os dados usando uma consulta:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> "<query>"

16.3.3. ogr2ogr

ogr2ogr é uma ferramenta muito poderosa para converter dados em e de postgis para muitos formatos de dados. ogr2ogr faz parte do software GDAL/OGR e deve ser instalado separadamente. Para exportar uma tabela do PostGIS para GML, você pode usar este comando:

ogr2ogr -f GML export.gml PG:'dbname=<databasename> user=<username>
        host=<hostname>' <Name of PostGIS-Table>

16.3.4. DB Manager

Você deve ter notado outra opção no menu Banco de Dados rotulado como Gerenciador de BD. Esta é uma ferramenta que fornece uma interface unificada para interagir com bancos de dados espaciais, incluindo o PostGIS. Também permite importar e exportar de bancos de dados para outros formatos. Como o próximo módulo é amplamente dedicado ao uso dessa ferramenta, apenas a mencionaremos brevemente aqui.

16.3.5. In Conclusion

Importação e exportação de dados de e para o banco de dados pode ser feita de muitas maneiras diferentes. Especialmente quando se utiliza diferentes fontes de dados, você provavelmente vai usar essas funções (ou outros como eles) em uma base regular.

16.3.6. What’s Next?

Em seguida, vamos olhar para como consultar os dados que criamos antes.