User Tools

Site Tools


tecnica:gps_cartografia_gis:postgis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
tecnica:gps_cartografia_gis:postgis [2017/11/14 19:52] – [PostGIS 2.3] niccolotecnica:gps_cartografia_gis:postgis [2017/11/15 15:48] – [Migrazione da PostgreSQL 9.4/PostGIS 2.1] niccolo
Line 7: Line 7:
 Pacchetti installati: Pacchetti installati:
  
 +  * **postgresql-9.6**
 +  * **postgresql-9.6-postgis-2.3**
 +  * **postgresql-9.6-postgis-2.3-scripts**
 +  * **postgresql-contrib-9.6**
 +  * **postgresql-client-9.6**
  
 +==== Creazione di un database geografico ====
 +
 +È necessario collegarsi al database con i privilegi di database administrator:
 +
 +<code>
 +# su - postgres
 +> psql
 +postgres=#
 +</code>
 +
 +quindi si crea un **utente** e un **database** su cui l'utente ha pieni poteri. Dopo essersi connessi al database si crea al suo interno le estensioni **PostGIS**:
 +
 +<code>
 +CREATE USER "strade" PASSWORD 'MySecret';
 +CREATE DATABASE strade OWNER strade
 +    TEMPLATE template0 LC_COLLATE = 'it_IT.UTF-8' LC_CTYPE = 'it_IT.UTF-8'
 +    ENCODING 'UTF8';
 +\connect strade
 +CREATE EXTENSION postgis;
 +</code>
 +
 +A differenza delle vecchie versioni di PostGIS (es. la 1.3), non c'è da impazzire con i permessi da assegnare alle tabelle speciali. La **''spatial_ref_sys''** (che contiene le definizioni dei sistemi di riferimento) va bene che sia in sola lettura, la **''geometry_columns''** e la **''geography_columns''** sono adesso delle semplici VIEW.
 +==== Migrazione da PostgreSQL 9.4/PostGIS 2.1 ====
 +
 +La **migrazione** di un database dalla vecchia versione **postgresql-9.4-postgis-2.1** alla nuova **postgresql-9.6-postgis-2.3** è relativamente semplice, il tutto si risolve nell'esecuzione di **pg_dump** sulla vecchia versione e **pg_restore** sulla nuova.
 +
 +Nelle versioni precedenti di PostGIS (es. la 1.3) c'era da impazzire con gli **oggetti creati dall'estensione PostGIS**; in pratica le funzioni, gli operatori, i tipi dati, ecc. venivano regolarmente salvati nel dump, ma al momento del restore **bisognava escluderli** perché altrimenti andavano in conflitto con gli analoghi già presenti nel nuovo database, in cui era stata creata l'estensione del nuovo PostGIS.
 +
 +Con la versione 2.x di PostGIS il dump conterrà solo i dati utente e il restore è molto semplificato. Sulla vecchia installazione si esegue il **dump** del database:
 +
 +<code>
 +su - postgres
 +pg_dump -Fc strade > strade.dump
 +</code>
 +
 +Sulla nuova installazione si esegue il **restore** a nome dell'utente proprietario del nuovo database (utente non privilegiato). Nel nostro esempio il vecchio database e il nuovo coesistono sullo stesso host, la nuova istanza quindi gira sulla porta **5433/TCP**:
 +
 +<code>
 +pg_restore --port 5433 -U strade -W -h 127.0.0.1 -d strade strade.dump
 +</code>
 ===== PostGIS 1.3 ===== ===== PostGIS 1.3 =====
  
tecnica/gps_cartografia_gis/postgis.txt · Last modified: 2017/11/15 16:02 by niccolo