17.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.

17.3.1. shp2pgsql

shp2pgsql is a commandline tool to import ESRI shapefiles to the database. Under Unix, you can use the following command for importing a new PostGIS table:

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

Under Windows, you have to perform the import process in two steps:

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

You may encounter this error:

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.)

17.3.2. pgsql2shp

pgsql2shp is a commandline tool to export PostGIS Tables, Views or SQL select queries. To do this under Unix:

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

To export the data using a query:

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

17.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/OGR Software 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>

17.3.4. DB Manager

You may have noticed another option in the Database menu labeled DB Manager. This is a tool that provides a unified interface for interacting with spatial databases including PostGIS. It also allows you to import and export from databases to other formats. Since the next module is largely devoted to using this tool, we will only briefly mention it here.

17.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.

17.3.6. What’s Next?

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