Postgres/PostGIS primi passi

Da Wikipedia, l'enciclopedia libera.

Problemi ricorrenti nel primo utilizzo di PostgreSQL/PostGIS su Ubuntu Linux.

Contents

Problema: primo login con PostgreSQL

Quando cerco di entrare in postgreSQL col comando:

su - postgres

mi viene richiesta una password che però non ho mai inserito in fase di installazione. Come posso trovarla?

Ho provato a inserire postgres ed anche la mia password di root ma il risultato non cambia: ricevo sempre il messaggio "Spiacente, autenticazione fallita".

Soluzione

È possibile acquisire i diritti dell'utente postgres con i seguenti comandi:

sudo su
passwd postgres

Problema: postgis_full_version() does not exist

Sono entrato in psql e mi sono connesso a template1 ma il comando select postgis_full_version() ha restituito il seguente errore:

ERROR:  function postgis_full_version() does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

Soluzione

Significa che il file di istruzioni lwpostgis.sql (ed spatial_ref_sys.sql) non sono stati "caricati" in quel db.

Per fare questo:

createlang plpgsql yourtestdatabase
psql -d yourtestdatabase -f lwpostgis.sql
psql -d yourtestdatabase -f spatial_ref_sys.sql

Questa procedura può essere applicata per ogni database che si vuole "abilitare" a PostGIS, oppure in un database che verrà usato come template (ad esempio template1)

Se viene applicata per template1 (che PostgreSQL usa di default come template), ogni nuovo database sarà abilitato a PostGIS.

È comunque possibile creare un database di template personalizzato (ad esempio geotemplate) dove caricare le funzioni di PostGIS e tutto il necessario già pronto in un nuovo database.

In questo modo:

createdb geotemplate
createlang plpgsql geotemplate
psql -d geotemplate -f lwpostgis.sql
psql -d geotemplate -f spatial_ref_sys.sql
psql -d geotemplate -f
altre_istruzioni_per_funzioni_o_tabelle_che_uso_sempre.sql

Ora geotemplate può essere usato come template per i database PostGIS.

Per fare questo, al momento di creare un nuovo database è sufficiente eseguire il comando:

createdb nuovo_postgis_db -T geotemplate


L'installer di Windows per PostgreSQL (se PostGIS è abilitato) mette di default le funzioni (e tabelle) di PostGIS in template1, ma l'abilitazione è sconsigliata perché spesso contiene una versione datata di PostGIS.

Personal tools