117 votes

Installation de Postgis : le type "geometry" n'existe pas

J'essaie de créer un tableau avec Postgis. Je le fais de la manière suivante page . Mais lorsque j'importe le fichier postgis.sql, j'obtiens beaucoup d'erreurs :

ERROR:  type "geometry" does not exist

Quelqu'un sait-il comment le réparer ?

251voto

Krishna Sapkota Points 136

J'ai eu le même problème, mais il a été résolu en exécutant le code suivant

CREATE EXTENSION postgis;

En détail,

  1. ouvrir pgAdmin
  2. sélectionnez (cliquez) votre base de données
  3. cliquez sur l'icône "SQL" de la barre
  4. exécuter le code "CREATE EXTENSION postgis ;".

4 votes

Merci. BTW, si quelqu'un utilise 'psql' pour exécuter ce code, assurez-vous que le rôle a l'attribut/privilège 'Superuser'.

2 votes

SAUVEUR DE VIE ! Je pensais que je l'avais déjà mis en place alors j'ai continué à penser que c'était autre chose...

3 votes

Notez que ceci est spécifique à une base de données particulière que vous utilisez. Il ne s'applique pas à l'ensemble de l'installation.

28voto

ludwig Points 371

Si l'extension Postgis est chargée, votre SQL ne trouve peut-être pas le type de géométrie en raison de l'absence de chemin de recherche vers le schéma public.

Essayez

SET search_path = ..., public ;

dans la première ligne de votre scsript. (remplacez ... par les autres chemins de recherche requis)

25voto

Brendan Nee Points 469

Vous pouvez le faire à partir du terminal :

psql mydatabasename -c "CREATE EXTENSION postgis";

18voto

Mike T Points 7385

Pour que psql s'arrête à la première erreur, utilisez -v ON_ERROR_STOP=1 (qui est désactivé par défaut (c'est pourquoi vous voyez de nombreuses erreurs). Par exemple :

psql -U postgres -d postgis -v ON_ERROR_STOP=1 -f postgis.sql

L'erreur réelle est quelque chose comme "could not load library X", qui peut varier selon votre situation. A titre indicatif, essayez cette commande avant d'installer le sql script :

ldconfig

(vous pouvez avoir besoin de préfixer avec sudo en fonction de votre système). Cette commande met à jour les chemins d'accès à toutes les bibliothèques du système, telles que GEOS.

11voto

Leonardo Kuffo Points 16

Cette erreur peut également se produire si vous essayez d'utiliser les types de postgis sur un autre schéma plutôt que public .

Si vous créez votre propre schéma, que vous utilisez postgis 2.3 ou une version ultérieure et que vous rencontrez cette erreur, procédez comme suit comme indiqué ici :

CREATE SCHEMA IF NOT EXISTS my_schema;
CREATE extension postgis;

UPDATE pg_extension 
  SET extrelocatable = TRUE 
    WHERE extname = 'postgis';

ALTER EXTENSION postgis 
  SET SCHEMA my_schema;

ALTER EXTENSION postgis 
  UPDATE TO "2.5.2next";

ALTER EXTENSION postgis 
  UPDATE TO "2.5.2";

SET search_path TO my_schema;

Ensuite, vous pouvez procéder à l'utilisation des fonctionnalités de postgis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X