16.3. Lesson: Importer et Exporter

Bien évidemment, une base de données sans un moyen facile de migrer des données dans et hors d’elle serait sans grand intérêt. Heureusement, il existe de nombreux outils permettant de facilement déplacer les données vers et hors de PostGIS.

16.3.1. shp2pgsql

shp2pgsql est un outil en ligne de commande pour importer des fichiers ESRI Shapefile dans une base de données. Sous Unix, vous pouvez utiliser la commande suivante pour importer une nouvelle table PostGIS :

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

Sous Windows, vous devez réaliser le processus d’importation en deux étapes:

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

Vous pouvez rencontrer cette erreur:

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

pgsql2shp est un outil de ligne de commande pour exporter des tables, des vues ou des requêtes de sélection SQL. Pour l’utiliser sous Unix:

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

Pour exporter des données à l’aide d’une requête:

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

Vous avez dû remarquer une autre option dans le menu Base de données intitulée DB Manager. Il s’agit d’un outil qui offre une interface unifiée pour interagir avec les bases de données spatiales incluses dans PostGIS. Il vous permet également d’importer et exporter depuis les bases de données vers d’autres formats. Étant donné que le prochain module est largement dévolu à l’utilisation de cet outil, nous ne ferons que le mentionner ici.

16.3.5. In Conclusion

Importer et exporter vers et depuis une base de données peut être fait de diverses manières. Vous utiliserez probablement ces fonctions (ou des similaires) si vous utilisez des données de sources disparates.

16.3.6. What’s Next?

Prochainement, nous verrons comment interroger les données que nous avons créées auparavant.