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"

C’est un problème connu lié à la création in situ d’un index spatial sur la couche en cours d’importation. Pour éviter l’erreur, excluez le paramètre -I. Cela signifie qu’aucun index spatial ne sera directement créé sur la table, et que vous aurez besoin de le créer une fois la donnée importée dans la base de données. (La création d’un index spatial sera abordée dans la prochaine leçon.)

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 est un très puissant outil pour convertir les données entre PostGIS et beaucoup de formats de données. ogr2ogr fait partie du logiciel GDAL/OGR et doit être installé séparément. Pour exporter une table PostGIS en GML, vous pouvez utiliser cette commande:

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.