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"

This is a known issue regarding the creation in situ of a spatial index for the data you’re importing. To avoid the error, exclude the -I parameter. This will mean that no spatial index is being created directly, and you’ll need to create it in the database after the data have been imported. (The creation of a spatial index will be covered in the next lesson.)

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 is a very powerful tool to convert data into and from postgis to many data formats. ogr2ogr is part of the GDAL library and has to be installed separately. To export a table from PostGIS to GML, you can use this command:

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.