Suite

Je ne peux pas ajouter de fichier SQL à la base de données postgresql


J'ai commencé par les bases et j'ai suivi les étapes suivantes :

  • crééb -U postgres -E UTF8 -O Peete gis-D'ACCORD
  • createlang -U postgres plpgsql gis(était déjà installé) -OK
  • psql -U postgres -d gis -f PATH_TO_POSTGRES/share/contrib/postgis-2.1/postgis.sql-D'ACCORD
  • psql -U postgres -d gis -f PATH_TO_FILE/4326.sql(J'ai téléchargé le fichier depuis Spatialreference et j'ai choisi "PostGIS spatial_ref_sys INSERT statement") - OK
  • Ensuite, j'ai exécuté cette commandeshp2pgsql -c -s 4326 -I routes.shp > routes.sql-D'ACCORD
  • Maintenant, je voulais ajouter ce fichier SQL à ma base de données créée ci-dessus, j'ai donc exécuté cette commande :psql -d gis -f routes.sql-MANQUÉ

J'ai ce message d'erreur :

ERREUR : AddGeometryColumn() - contexte SRID invalide : instruction SQL "SELECT AddGeometryColumn(",$1,$2,$3,$4,$5,$6,$7)" PL/pgSQL fonction addgeometrycolumn caractère variable, entier, booléen) ligne 5 à l'instruction SQL ********** Erreur **********

Le fichier de formes que j'utilise est dans le système de coordonnées WGS84EPSG : 4326

Des recommandations ?


J'essayais de faire quelques changements et cela ressemble à une solution puisque tout fonctionne.

J'ai supprimé l'ancienne base de données et en ai encore créé une nouvelle en créant une base de données spatiale directement dans pgAdmin :

  • Création d'une nouvelle base de données (nom, propriétaire…)
  • J'ai ouvert la boîte de dialogue de requête et j'ai écrit

CRÉER UNE EXTENSION postgis; puis SELECT postgis_full_version();

Cette étape a probablement ajouté tous les systèmes de coordonnées à la base de données. Après cela, dans le schéma public, vous verrez une table de métadonnées spécifique à PostGIS, spatial_ref_sys.

Puis j'ai encore couru

shp2pgsql -I -s 4326 PATH_TO oads.shp routes | psql -U postgres -d MaBase de données

Fait.


Voir la vidéo: PostgreSQLPostGIS n3 - Insérer des données attributaires depuis des fichier csv (Octobre 2021).