Postgis 2.0 - la vista public.geometry_columns non contiene informazioni corrette per le viste


10

Di recente abbiamo aggiornato il nostro database su Postgis 2.0.

Nel nostro sistema abbiamo usato per creare viste per tabelle contenenti una colonna geometrica. Dopo aver creato la vista, abbiamo anche aggiornato manualmente la tabella geometry_columns con le informazioni necessarie. Le viste vengono utilizzate per creare layer Geoserver e anche per alimentare dati per ogr2ogr.

Il problema in Postgis 2.0 è che la tabella geometry_columns è stata sostituita con una vista che recupera i dati dai cataloghi di sistema. Nel nostro caso, per le viste create, non recuperiamo le informazioni corrette nelle colonne 'coord_dimension', 'srid' e 'type'.
Informazioni : dopo alcune ricerche ho scoperto che la vista geometry_columns sta usando la tabella pg_constraint per riempire quelle colonne, ma per quella vista non ci sono vincoli definiti.

Qualcuno ha idea di come possiamo risolvere questo problema? Come possiamo forzare la visualizzazione gemetry_columns a recuperare le informazioni necessarie? C'è una soluzione alternativa o un altro modo per farlo?

Risposte:


8

Ho trovato una soluzione al mio problema: tutte le informazioni necessarie sono disponibili a questo link https://postgis.net/docs/using_postgis_dbmanagement.html#Manual_Register_Spatial_Column

Soluzione 1: creare la tabella e aggiungere la colonna della geometria in base al typmod, il processo di creazione lo registrerebbe correttamente in geometry_columns.
Corretto: CREATE TABLE pois_ny (gid CHIAVE PRIMARIA SERIALE, geometria geom (POINT, 4326));
Errato: CREATE TABLE pois_ny (gid SERIAL PRIMARY KEY); SELECT AddGeometryColumn ('pois_ny', 'geom', 4326, 'POINT', 2, false);

Soluzione 2: creare la vista e forzare il typmod per le colonne della geometria,
ad es. CREATE VIEW vw_pois_ny_parks COME SELEZIONARE geom :: geometry (POINT, 4326) Come geom DA pois_ny

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.