Por que a instalação do PostGIS não cria um template_postgis?

36

Eu segui este caminho para a instalação do PostgreSQL e PostGIS:

Agora, quando inicio o pgAdmin e tento criar um novo banco de dados PostGIS, não há template_postgis para uso no Template.


Eu tentei seguir outra rota, que está baixando o pacote PostgreSQL diretamente do PostgreSQL. Isso instala o servidor e permite que você use o StackBuilder para baixar e instalar o PostGIS. Isso não resolve o meu problema.

Michael Markieta
fonte

Respostas:

32

Você pode criar facilmente o modelo se ele não estiver lá automaticamente. Aqui está uma descrição para o ubuntu: http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-coala-cármica /

Esta é a parte essencial:

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

Em Pangolin Preciso:

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
underdark
fonte
Estranho .. na etapa 'createlang plpgsql postgistemplate', recebo um $ "plpgsql" já está instalado no banco de dados "postgistemplate" ... e, na próxima etapa, psql: command not found
Michael Markieta
Atualização - Não há diretório postgis no / usr / share / path #
Michael Markieta
Então eu acho que está escondido em outro lugar no OSX. Você já tentou procurar os arquivos?
Underdark
Encontrados os arquivos, todas as linhas de código são executadas sem erros. Mas o pgAdmin3 ainda não mostra o modelo ... Hummm .. Reiniciei o meu Mac para ver se isso mudaria alguma coisa, mas ainda nada. (estranho ... Eu tive esse trabalho no meu Mac antes da mudança para Lion)
Michael Markieta
Qual usuário você usou para criar o modelo e qual usuário você está usando no pgAdmin?
Underdark
29

A partir da versão 2, o Postgis é ativado usando o sistema de extensão. Para ativar espacialmente um banco de dados, faça logon no seu banco de dados e, em seguida:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

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

Nota: Apenas as SUPERUSERSfunções têm a capacidade de criarEXTENSIONS

nickves
fonte
de pgAdmin4: Bases de dados >> {selecione db} >> Extensões >> -r-click >> Create >> Selecionar da lista
Matt Wilkie
6

Eu tive problemas semelhantes e acabei instalando o pacote encontrado em:

entreprisedb.com

você pode selecionar a instalação do postgis durante a fase de instalação ou chamar 'Application Stack Builder' posteriormente. Se a instalação não funcionar, selecione outra pasta para baixar o instalador do postgis (que será chamado algo como edb_postgis_1_5_pg91.app.zip). Desembale o zip e instale. Se não funcionar, você pode reiniciar e tentar novamente. No pgAdmin III, template_postgis deve aparecer.

Vladtn
fonte
3

A questão pode estar desatualizada, mas encontrei o mesmo erro no OS X Lion. Talvez minha resposta possa ajudar outro usuário.

A instalação padrão do PostGIS com o "construtor de pilhas" falhará. Mas após a primeira etapa da instalação, você pode escolher a pasta de download para o PostGIS. Basta fazer o download na área de trabalho e descompactá-lo manualmente. Ao clicar duas vezes no arquivo, ele será instalado corretamente. O postgis_template está agora disponível no pgAdmin.

troll
fonte
1

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 datistemplatesinalizador na tabela do sistema pg_databasepara 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
até
fonte