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.

