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

J'essaie de créer une table avec Postgis. Je le fais par cette page . Mais quand j'importe postgis.fichier sql, je reçois beaucoup d'erreurs:

ERROR:  type "geometry" does not exist

Est-ce que quelqu'un sait comment puis-je le réparer?

64
demandé sur yetty 2011-07-28 00:01:22

9 réponses

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

CREATE EXTENSION postgis;

En détail,

  1. ouvrir pgAdmin
  2. sélectionnez (cliquez sur votre base de données
  3. cliquez sur L'icône" SQL " dans la barre
  4. exécutez le code" créer L'EXTENSION postgis; "
124
répondu Krishna Sapkota 2014-01-07 15:05:22

Pour obtenir psql pour s'arrêter sur la première erreur, utilisez -v ON_ERROR_STOP=1 (qui est désactivé par défaut, qui est pourquoi vous voyez beaucoup d'erreurs). Par exemple:

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

L'erreur réelle est quelque chose comme "impossible de charger la bibliothèque X", qui peut varier en fonction de votre situation. Pour deviner, essayez cette commande avant d'installer le script sql:

ldconfig

(vous devrez peut-être préfixer avec sudo en fonction de votre système). Cette commande met à jour les chemins d'accès à toutes les bibliothèques système, telles que GEOS.

17
répondu Mike T 2011-07-28 19:42:49

Vous pouvez le faire à partir du terminal:

psql mydatabasename -c "CREATE EXTENSION postgis";
15
répondu Brendan Nee 2015-04-18 00:22:37

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

Essayez

Définir search_path=... publique;

Dans la première ligne de votre scscript. (remplacer ... avec les autres chemins de recherche requis)

14
répondu ludwig 2015-04-04 21:05:08

, Vous devez activer l'extension sur votre base de données.

psql my_database -c "CREATE EXTENSION postgis;"

2
répondu Baptiste Donaux 2015-01-30 10:03:31

Les réponses ici peuvent résoudre votre problème, mais si postgis est déjà activé sur votre base de données, le problème peut être que vous essayez de restaurer une table postgis (avec une colonne de géométrie) dans un schéma autre que celui où votre extension postgis est activée. Dans pgAdmin, vous pouvez cliquer sur l'extension postgis et voir quel schéma est spécifié. Si vous essayez de restaurer un tableau avec une colonne de géométrie dans un schéma différent, vous pouvez obtenir cette erreur.

J'ai résolu cela en modifiant mon postgis extension - mais je ne suis pas sûr si c'était nécessairement la meilleure façon de le faire. Tout ce que je sais, c'est que cela m'a permis de restaurer la table.

1
répondu jase81 2016-10-18 01:46:35

Ou...

cursor.execute('create extension postgis')

Dans votre programme python, en utilisant un curseur Courant de psycopg2.

0
répondu softweyr 2014-11-13 20:39:08

Assurez-vous D'abord d'avoir (correspondant à la version pg: psql-V) postgis installé:

sudo apt install postgis postgresql-9.6-postgis-2.3

Juste avant la création des tables ajouter:

db.engine.execute('create extension postgis') 
db.create_all()
0
répondu Karolius 2018-09-27 10:53:21

Vous devez également Vous assurer que l'utilisateur que vous essayez d'utiliser l'extension postgis, a accès au schéma où postgis est de configuration (qui dans les tutoriels, j'ai lu est appelé "postgis').

Je viens d'avoir cette erreur, et elle a été résolue parce que je n'avais donné qu'un nouvel accès utilisateur à la base de données. Dans la base de données que j'avais créée, j'ai couru:

grant all on schema postgis to USERNAME; 

Et cela a résolu cette erreur

0
répondu mozboz 2018-09-27 15:08:48