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.

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

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


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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.