Pourquoi l'installation de PostGIS ne crée-t-elle pas un template_postgis?

36

J'ai choisi cette voie pour installer PostgreSQL et PostGIS:

  • PostgreSQL utilisant le KyngChaos autonome ,
  • PostGIS installe aussi de KyngChaos ...
  • pgAdmin3 à partir de PostgreSQL Tools

Maintenant, lorsque je lance pgAdmin et que je tente de créer une nouvelle base de données PostGIS, il n’ya pas de template_postgis à utiliser dans Template.


J'ai essayé d'emprunter une autre voie, à savoir télécharger le package PostgreSQL directement à partir de PostgreSQL. Cela installe le serveur et vous permet d’utiliser StackBuilder pour télécharger et installer PostGIS. Cela ne résout pas mon problème.

Michael Markieta
la source

Réponses:

32

Vous pouvez très facilement créer le modèle s'il n'y est pas automatiquement. Voici une description pour Ubuntu: http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-karmic-koala /

C'est la partie essentielle:

sudo su postgres
createdb template_postgis
createlang plpgsql template_postgis
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql

En pangolin précis:

sudo su postgres
createdb template_postgis
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
sous-bois
la source
Strange .. à l'étape 'createlang plpgsql postgistemplate' je reçois un $ "plpgsql" est déjà installé dans la base de données "postgistemplate" ... puis à l'étape suivante, psql: commande introuvable
Michael Markieta le
Mise à jour - Il n'y a pas de répertoire postgis dans / usr / share / path
Michael Markieta le
Ensuite, je suppose que c'est caché ailleurs sur OSX. Avez-vous essayé de rechercher les fichiers?
underdark
Trouvé les fichiers, toutes les lignes de code fonctionnent sans erreurs. Mais pgAdmin3 ne montre toujours pas le modèle ... Hrmm .. J'ai redémarré mon Mac pour voir si cela changerait quoi que ce soit, mais toujours nada. (étrange ... ça fonctionnait sur mon Mac avant le passage à Lion)
Michael Markieta
Quel utilisateur avez-vous utilisé pour créer le modèle et quel utilisateur utilisez-vous dans pgAdmin?
underdark
29

Depuis la version 2, Postgis est activé en utilisant le système d’extension. Pour activer spatialement une base de données, connectez-vous à votre base de données puis:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

source: http://postgis.net/docs/postgis_installation.html

Remarque: seuls les SUPERUSERSrôles ont la possibilité de créerEXTENSIONS

nickves
la source
from pgAdmin4: Databases >> {select db} >> Extensions >> -r-cliquez sur >> Créez >> Sélectionnez dans la liste
matt wilkie
6

J'ai eu des problèmes similaires et j'ai fini par installer le paquet trouvé sur:

entreprisedb.com

vous pouvez sélectionner l'installation de postgis pendant la phase d'installation ou appeler «Application Stack Builder» ultérieurement. Si l'installation ne fonctionne pas, sélectionnez un autre dossier pour télécharger le programme d'installation de Postgis (qui s'appellera edb_postgis_1_5_pg91.app.zip). Déballez le zip et installez-le. Si cela ne fonctionne pas, vous voudrez peut-être redémarrer et essayer à nouveau. Dans pgAdmin III, template_postgis devrait apparaître.

Vladtn
la source
3

La question est peut-être obsolète, mais j'ai rencontré la même erreur sous OS X Lion. Peut-être que ma réponse pourrait aider un autre utilisateur.

L'installation par défaut de PostGIS avec "stack builder" échouera. Mais après la première étape de l’installation, vous pouvez choisir le dossier de téléchargement pour PostGIS. Téléchargez-le simplement sur votre bureau et décompressez-le à la main. En double-cliquant sur le fichier, il s'installera correctement. Le postgis_template est maintenant disponible dans pgAdmin.

troll
la source
1

Selon la documentation de PostGIS, seuls

Certaines distributions empaquetées de PostGIS ... chargent les fonctions PostGIS dans une base de données de modèles appelée template_postgis.

Donc, toutes les distributions ne viennent pas avec template_postgis.

Comme indiqué dans les réponses existantes, dans PostGIS 2.x, il est facile de créer ou de personnaliser le modèle en créant une base de données régulière nommée template_postgis superutilisateur, puis en créant les extensions requises et facultatives (telles que pgRouting). Documentation PostGIS:

sudo su postgres
createdb template_postgis

psql -d template_postgis -c "CREATE EXTENSION postgis;"
psql -d template_postgis -c "CREATE EXTENSION postgis_topology;"

-- if you built with sfcgal support --
psql -d template_postgis -c "CREATE EXTENSION postgis_sfcgal;"

En outre, vous pouvez marquer cette base de données nouvellement créée en tant que base de données modèle en définissant l' datistemplateindicateur dans la table système pg_databasesur ture.

psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"

Cela empêchera, par exemple, que la base de données de modèles soit accidentellement supprimée ou modifiée par d’autres utilisateurs ou par vous-même. (Vous devrez définir l'indicateur sur false si vous souhaitez modifier le modèle.)

Vous pouvez ensuite créer une base de données spatiale basée sur ce que vous avez mis dans le modèle:

createdb -T template_postgis my_spatial_db
jusqu'à
la source