tecnica:gps_cartografia_gis:postgis
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tecnica:gps_cartografia_gis:postgis [2012/11/15 21:25] – [Creazione di un template_gis] niccolo | tecnica:gps_cartografia_gis:postgis [2017/11/15 16:02] (current) – [Migrazione da PostgreSQL 9.4/PostGIS 2.1] niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PostGIS ====== | + | ====== PostGIS |
+ | |||
+ | ===== PostGIS 2.3 ===== | ||
+ | |||
+ | Distribuzione di riferimento: | ||
+ | |||
+ | 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: | ||
+ | |||
+ | < | ||
+ | # su - postgres | ||
+ | > psql | ||
+ | postgres=# | ||
+ | </ | ||
+ | |||
+ | quindi si crea un **utente** e un **database** su cui l' | ||
+ | |||
+ | < | ||
+ | CREATE USER " | ||
+ | CREATE DATABASE strade OWNER strade | ||
+ | TEMPLATE template0 LC_COLLATE = ' | ||
+ | ENCODING ' | ||
+ | \connect strade | ||
+ | CREATE EXTENSION postgis; | ||
+ | </ | ||
+ | |||
+ | A differenza delle vecchie versioni di PostGIS (es. la 1.3), non c'è da impazzire con i permessi da assegnare alle tabelle speciali. La **'' | ||
+ | ==== 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' | ||
+ | |||
+ | Nelle versioni precedenti di PostGIS (es. la 1.3) c'era da impazzire con gli **oggetti creati dall' | ||
+ | |||
+ | 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: | ||
+ | |||
+ | < | ||
+ | su - postgres | ||
+ | pg_dump -Fc strade > strade.dump | ||
+ | </ | ||
+ | |||
+ | Sulla nuova installazione si esegue il **restore** a nome dell' | ||
+ | |||
+ | < | ||
+ | pg_restore --port 5433 -U strade -W -h 127.0.0.1 -d strade strade.dump | ||
+ | </ | ||
+ | |||
+ | Poiché l' | ||
+ | |||
+ | < | ||
+ | pg_restore: [archiver (db)] Error from TOC entry 3407; 0 0 COMMENT EXTENSION plpgsql | ||
+ | pg_restore: [archiver (db)] Error from TOC entry 3408; 0 0 COMMENT EXTENSION postgis | ||
+ | pg_restore: [archiver (db)] Error from TOC entry 3199; 0 88843 TABLE DATA spatial_ref_sys postgres | ||
+ | </ | ||
+ | |||
+ | sono errori che possono essere ignorati, poiché le estensioni ' | ||
+ | ===== PostGIS 1.3 ===== | ||
Distribuzione di riferimento: | Distribuzione di riferimento: | ||
Line 27: | Line 91: | ||
* [[http:// | * [[http:// | ||
- | ===== Creazione di un template_gis ===== | + | ===== Creazione |
- | Queste le istruzioni per PostgreSQL 8.4 e PostGIS 1.5 su una Debian Squeeze. Dal prompt dei comandi SQL, come utente // | + | Queste le istruzioni per **PostgreSQL 8.4** e **PostGIS 1.5** su una Debian Squeeze. Dal prompt dei comandi SQL, come utente // |
< | < | ||
Line 40: | Line 104: | ||
</ | </ | ||
- | Con PostgreSQL 9.1 di su Debian Wheezy c'è qualche differenza: | + | Con **PostgreSQL 9.1** di su Debian Wheezy c'è qualche differenza: |
< | < | ||
Line 65: | Line 129: | ||
UPDATE pg_database SET datistemplate=' | UPDATE pg_database SET datistemplate=' | ||
</ | </ | ||
+ | |||
+ | Con **PostgreSQL 9.4** e **PostGIS 2.1** (Debian Jessie) diventa tutto più semplice, al punto che creare un template_gis è sostanzialmente inutile perchè per abilitare spazialmente un database è sufficiente il comando '' | ||
+ | |||
+ | <code sql> | ||
+ | CREATE DATABASE strade OWNER strade TEMPLATE template0 | ||
+ | LC_COLLATE = ' | ||
+ | \connect strade | ||
+ | CREATE EXTENSION postgis; | ||
+ | </ | ||
+ | |||
+ | La tabella **'' | ||
+ | |||
+ | Se si intende effettuare il restore di vecchi dump, potrebbe essere necessario creare i nomi di alcune funzioni ormai obsolete. Ad esempio il restore di questa tabella fallisce | ||
+ | |||
+ | <code sql> | ||
+ | CREATE TABLE luoghi ( | ||
+ | id integer NOT NULL, | ||
+ | wpt geometry, | ||
+ | CONSTRAINT enforce_dims_wpt CHECK ((ndims(wpt) = 2)) | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | perché la funzione **'' | ||
+ | |||
+ | < | ||
+ | \connect strade | ||
+ | \i / | ||
+ | </ | ||
+ | |||
+ | Esiste anche lo script **'' | ||
==== Creazione del linguaggio ==== | ==== Creazione del linguaggio ==== | ||
tecnica/gps_cartografia_gis/postgis.txt · Last modified: 2017/11/15 16:02 by niccolo