Postgis 2.0 - La vue public.geometry_columns ne contient pas d'informations correctes pour les vues

10

Nous avons récemment mis à jour notre base de données vers Postgis 2.0.

Dans notre système, nous avions l'habitude de créer des vues pour les tables contenant une colonne de géométrie. Après avoir créé la vue, nous avons également mis à jour manuellement la table geometry_columns avec les informations nécessaires. Les vues sont utilisées pour créer des couches Geoserver et également pour alimenter des données pour ogr2ogr.

Le problème dans Postgis 2.0 est que la table geometry_columns a été remplacée par une vue qui récupère les données des catalogues système. Dans notre cas, pour les vues créées, nous ne récupérons pas les informations correctes dans les colonnes 'coord_dimension', 'srid' et 'type'.
Info : après quelques recherches, j'ai découvert que la vue geometry_columns utilise la table pg_constraint pour remplir ces colonnes, mais pour cette vue, aucune contrainte n'est définie.

Quelqu'un sait-il comment résoudre ce problème? Comment pouvons-nous forcer la vue gemetry_columns à récupérer les informations nécessaires? Existe-t-il une solution de contournement ou une autre manière de procéder?

aspic
la source

Réponses:

8

J'ai trouvé une solution à mon problème: toutes les informations nécessaires sont disponibles sur ce lien https://postgis.net/docs/using_postgis_dbmanagement.html#Manual_Register_Spatial_Column

Solution 1: créez la table et ajoutez le type de colonne de la géométrie, le processus de création l'enregistrera correctement dans geometry_columns.
Correct: CREATE TABLE pois_ny (gid SERIAL PRIMARY KEY, geom geometry (POINT, 4326));
Incorrect: CREATE TABLE pois_ny (gid SERIAL PRIMARY KEY); SELECT AddGeometryColumn ('pois_ny', 'geom', 4326, 'POINT', 2, false);

Solution 2: créez la vue et forcez le typmod pour les colonnes de géométrie,
par exemple CREATE VIEW vw_pois_ny_parks AS SELECT geom :: geometry (POINT, 4326) As geom FROM pois_ny

aspic
la source