De acordo com a documentação do PostGIS, apenas
Algumas distribuições empacotadas do PostGIS ... carregam as funções do PostGIS em um banco de dados de modelo chamado template_postgis.
Portanto, nem toda distribuição é fornecida template_postgis
.
Como dito nas respostas existentes, no PostGIS 2.x, é fácil criar ou personalizar o modelo, criando um banco de dados regular chamado template_postgis
superusuário e, em seguida, criando as extensões opcionais e necessárias (como pgRouting). Por documentação 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;"
Além disso, você pode marcar esse banco de dados recém-criado como um banco de dados de modelo configurando o datistemplate
sinalizador na tabela do sistema pg_database
para ture
.
psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"
Isso impedirá, por exemplo, que o banco de dados de modelos seja descartado ou alterado acidentalmente por outros usuários ou por você mesmo. (Você precisará definir o sinalizador como false se desejar fazer alterações no modelo.)
Em seguida, você pode criar um banco de dados espacial com base no que você colocar no modelo:
createdb -T template_postgis my_spatial_db