Perché l'installazione di PostGIS non crea un template_postgis?


36

Ho seguito questa strada per l'installazione di PostgreSQL e PostGIS:

Ora, quando lancio pgAdmin e provo a creare un nuovo database PostGIS, non c'è template_postgis da usare in Template.


Ho provato a seguire un'altra strada, ovvero scaricare il pacchetto PostgreSQL direttamente da PostgreSQL. Ciò installa il server e consente di utilizzare StackBuilder per scaricare e installare PostGIS. Questo non risolve il mio problema.

Risposte:


32

Puoi creare facilmente il modello se non è presente automaticamente. Ecco una descrizione per Ubuntu: http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-karmica-koala /

Questa è la parte essenziale:

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

In pangolino 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

Strano .. al passaggio 'createlang plpgsql postgistemplate' Ottengo un $ "plpgsql" è già installato nel database "postgistemplate" ... e poi nel passaggio successivo, psql: comando non trovato
Michael Markieta

Aggiornamento - Non esiste una directory postgis nel percorso / usr / share /
Michael Markieta,

Quindi immagino che sia nascosto da qualche altra parte su OSX. Hai provato a cercare i file?
underdark

Trovato i file, tutte le righe di codice vengono eseguite senza errori. Ma pgAdmin3 non mostra ancora il modello ... Hrmm .. Riavvia il mio Mac per vedere se ciò cambierebbe qualcosa, ma comunque nada. (strano ... ho avuto questo lavoro sul mio Mac prima del passaggio a Lion)
Michael Markieta il

Quale utente hai usato per creare il modello e quale utente stai usando in pgAdmin?
underdark

29

Dalla versione 2 Postgis è abilitato utilizzando il sistema di estensione. Per abilitare spazialmente un database, accedere al database e quindi:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

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

Nota: solo i SUPERUSERSruoli hanno la possibilità di creareEXTENSIONS


da pgAdmin4: Database >> {selezionare db} >> Estensioni >> -r-clic >> Crea >> Seleziona dall'elenco
matt wilkie

6

Ho avuto problemi simili e ho finito per installare il pacchetto trovato su:

entreprisedb.com

puoi selezionare l'installazione di PostGis durante la fase di installazione o chiamare "Application Stack Builder" in seguito. Se l'installazione non funziona, seleziona un'altra cartella per scaricare il programma di installazione di Postgis (che verrà chiamato qualcosa come edb_postgis_1_5_pg91.app.zip). Disimballare la zip e installarla. Se non funziona, ti consigliamo di riavviare e riprovare. In pgAdmin III dovrebbe apparire template_postgis.


3

La domanda potrebbe essere obsoleta ma ho riscontrato lo stesso errore su OS X Lion. Forse la mia risposta potrebbe aiutare un altro utente.

L'installazione predefinita di PostGIS con "Stack Builder" non andrà a buon fine. Ma dopo il primo passaggio di installazione, puoi scegliere la cartella di download per PostGIS. Basta scaricarlo sul desktop e decomprimerlo manualmente. Facendo doppio clic sul file, verrà installato correttamente. Postgis_template è ora disponibile in pgAdmin.


1

Solo secondo la documentazione PostGIS

Alcune distribuzioni impacchettate di PostGIS ... caricano le funzioni PostGIS in un database modello chiamato template_postgis.

Quindi, non tutte le distribuzioni vengono fornite template_postgis.

Come detto nelle risposte esistenti, in PostGIS 2.x è facile creare o personalizzare il modello da soli creando un database normale chiamato template_postgis superutente e quindi creando le estensioni obbligatorie e facoltative (come pgRouting). Per la documentazione 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;"

Inoltre, è possibile contrassegnare questo database appena creato come database modello impostando il datistemplateflag nella tabella di sistema pg_databasesu ture.

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

Ciò, ad esempio, eviterà che il database dei modelli venga accidentalmente eliminato o modificato da altri utenti o dall'utente stesso. (Sarà necessario impostare il flag su false se si desidera apportare modifiche al modello.)

Quindi puoi creare un database spaziale basato su qualsiasi cosa tu abbia inserito nel modello:

createdb -T template_postgis my_spatial_db
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.