[Gfoss] errore import postgis

Usi shp2pgsql di postgis 1.5 o di 2.0?

Send from padfone2

Enzo Cocca enzo.ccc@gmail.com ha scritto:

salve,

volevo chiedere se qualcuno sa il motivo per cui con postgis 2.0 se importo uno shape file (con spit o shp2pgql) mi da questo errore:

ERRORE: la funzione addgeometrycolumn(unknown, unknown, unknown, integer, unknown, integer) non è unica

mentre con postgis 1.5 fila tutto liscio?

grazie mille!

Enzo Cocca (PhD Candidate)
Research Fellow
Università di Napoli “L’Orientale”
mail: enzo.ccc@gmail.com
cell: +393495087014

ho provato con entrambi.

Se non vado errato tra la versione 1.5 e la 2 si usa lo “use_typemode=true/false”. se devo fare l’operazione in modo manuale tramite sql dovrei importarmi il dbf in postgres e poi lanciare la sql select addgeometrycolumn (‘schema’, ‘nome_table’, ‘geometry’, ‘tipo di geometria’, srid, true)

···

Il giorno 01 giugno 2013 11:19, Andrea Peri <aperi2007@gmail.com> ha scritto:

Usi shp2pgsql di postgis 1.5 o di 2.0?

Send from padfone2

Enzo Cocca <enzo.ccc@gmail.com> ha scritto:

salve,

volevo chiedere se qualcuno sa il motivo per cui con postgis 2.0 se importo uno shape file (con spit o shp2pgql) mi da questo errore:

ERRORE: la funzione addgeometrycolumn(unknown, unknown, unknown, integer, unknown, integer) non è unica

mentre con postgis 1.5 fila tutto liscio?

grazie mille!

Enzo Cocca (PhD Candidate)
Research Fellow
Università di Napoli “L’Orientale”
mail: enzo.ccc@gmail.com
cell: +393495087014

Enzo Cocca (PhD Candidate)
Research Fellow
Università di Napoli “L’Orientale”
mail: enzo.ccc@gmail.com
cell: +393495087014

2013/6/1 Enzo Cocca <enzo.ccc@gmail.com>:

ho provato con entrambi.

Se non vado errato tra la versione 1.5 e la 2 si usa lo
"use_typemode=true/false". se devo fare l'operazione in modo manuale tramite
sql dovrei importarmi il dbf in postgres e poi lanciare la sql select
addgeometrycolumn ('schema', 'nome_table', 'geometry', 'tipo di geometria',
srid, true)

Se usi PostGIS dalla 2.0 in poi il comando addgeometrycolumn e'
superfluo, visto che con typemode puoi definire direttamente un field
geometrico in fase di creazione della tabella, ed e' stato possibile
trasformare la tabella geometry_columns in una vista che si aggiorna
automaticamente (anche se vedo che shp2pgsql continua a generare lo
stesso sql delle versioni precedenti, probabilmente per
retrocompatibilita').
Ad ogni modo tipo di errore che hai potrebbe essere dovuto ad avere
installato sul sistema una versione di PostGIS e aver poi lanciato le
istruzioni di sql sul database per creare il supporto PostGIS per
un'altra versione.

ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti

quindi spit di qgis non funziona più con postgis 2.0. Sta di fatto che anche shp2pgql di postgis 2.0 genera quell’errore. quindi come faccio ad importare uno shape in postgis 2.0?

···

Il giorno 01 giugno 2013 13:30, Paolo Corti <pcorti@gmail.com> ha scritto:

2013/6/1 Enzo Cocca <enzo.ccc@gmail.com>:

ho provato con entrambi.

Se non vado errato tra la versione 1.5 e la 2 si usa lo
“use_typemode=true/false”. se devo fare l’operazione in modo manuale tramite
sql dovrei importarmi il dbf in postgres e poi lanciare la sql select
addgeometrycolumn (‘schema’, ‘nome_table’, ‘geometry’, ‘tipo di geometria’,
srid, true)

Se usi PostGIS dalla 2.0 in poi il comando addgeometrycolumn e’
superfluo, visto che con typemode puoi definire direttamente un field
geometrico in fase di creazione della tabella, ed e’ stato possibile
trasformare la tabella geometry_columns in una vista che si aggiorna
automaticamente (anche se vedo che shp2pgsql continua a generare lo
stesso sql delle versioni precedenti, probabilmente per
retrocompatibilita’).
Ad ogni modo tipo di errore che hai potrebbe essere dovuto ad avere
installato sul sistema una versione di PostGIS e aver poi lanciato le
istruzioni di sql sul database per creare il supporto PostGIS per
un’altra versione.

ciao
p


Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti

Enzo Cocca (PhD Candidate)
Research Fellow
Università di Napoli “L’Orientale”
mail: enzo.ccc@gmail.com
cell: +393495087014

2013/6/1 Enzo Cocca <enzo.ccc@gmail.com>

quindi spit di qgis non funziona più con postgis 2.0. Sta di fatto che
anche shp2pgql di postgis 2.0 genera quell'errore. quindi come faccio ad
importare uno shape in postgis 2.0?

Non ho detto cio', e probabilmente mi sono spiegato male.
shp2pgsql funziona anche sulla 2.0, pur usando AddGeometryColumn, che
in tal caso genera il campo geografico usando typmod. Il comando
avrebbe potuto generare un sql senza la AddGeometryColumn, con il
CREATE TABLE che aggiunge il campo direttamente nelle definizioni
della CREATE TABLE con un istruzione del tipo:

CREATE TABLE mytab (
  column1 VARCHAR(255),
  ...
  geom GEOMETRY(Point, 4326),
  ...
)

A prescindere da questa considerazione, che puoi anche ignorare, puoi
tranquillamente usare shp2pgsql o anche ogr2ogr, funzionano benissimo
su tutte le versioni :slight_smile:

Il tuo problema, come dicevo, sospetto sia nel fatto che tu abbia
installato sul tuo computer/server una versione di PostGIS e che pero'
tu abbia una versione differente degli oggetti PostGIS installata sul
database, in particolare una definizione obsoleta della funzione
AddGeometryColumn. Fai un upgrade lanciando gli opportuni script di
caricamento del database.

ciao
p

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti

Grazie mille proverò a fare un upgrade di postgis.

E
Il giorno sabato 1 giugno 2013, Paolo Corti ha scritto:

2013/6/1 Enzo Cocca enzo.ccc@gmail.com

quindi spit di qgis non funziona più con postgis 2.0. Sta di fatto che
anche shp2pgql di postgis 2.0 genera quell’errore. quindi come faccio ad
importare uno shape in postgis 2.0?

Non ho detto cio’, e probabilmente mi sono spiegato male.
shp2pgsql funziona anche sulla 2.0, pur usando AddGeometryColumn, che
in tal caso genera il campo geografico usando typmod. Il comando
avrebbe potuto generare un sql senza la AddGeometryColumn, con il
CREATE TABLE che aggiunge il campo direttamente nelle definizioni
della CREATE TABLE con un istruzione del tipo:

CREATE TABLE mytab (
column1 VARCHAR(255),

geom GEOMETRY(Point, 4326),

)

A prescindere da questa considerazione, che puoi anche ignorare, puoi
tranquillamente usare shp2pgsql o anche ogr2ogr, funzionano benissimo
su tutte le versioni :slight_smile:

Il tuo problema, come dicevo, sospetto sia nel fatto che tu abbia
installato sul tuo computer/server una versione di PostGIS e che pero’
tu abbia una versione differente degli oggetti PostGIS installata sul
database, in particolare una definizione obsoleta della funzione
AddGeometryColumn. Fai un upgrade lanciando gli opportuni script di
caricamento del database.

ciao
p


Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
skype: capooti

Enzo Cocca (PhD Candidate)
Research Fellow
Università di Napoli “L’Orientale”
mail: enzo.ccc@gmail.com
cell: +393495087014