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' datistemplate
indicateur dans la table système pg_database
sur 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