Postgis 2.0 - Die Ansicht public.geometry_columns enthält keine korrekten Informationen für Ansichten

10

Wir haben kürzlich unsere Datenbank auf Postgis 2.0 aktualisiert.

In unserem System haben wir Ansichten für Tabellen erstellt, die eine Geometriespalte enthalten. Nach dem Erstellen der Ansicht haben wir auch die Tabelleometry_columns manuell mit den erforderlichen Informationen aktualisiert. Die Ansichten werden verwendet, um Geoserver-Layer zu erstellen und Daten für ogr2ogr einzugeben.

Das Problem in Postgis 2.0 besteht darin, dass die Tabelle geometrische Spalten durch eine Ansicht ersetzt wurde, die Daten aus Systemkatalogen abruft. In unserem Fall rufen wir für die erstellten Ansichten nicht die richtigen Informationen in den Spalten 'coord_dimension', 'srid' und 'type' ab.
Info : Nach einigen Recherchen habe ich herausgefunden, dass die Ansicht "ometry_columns "die Tabelle" pg_constraint "verwendet, um diese Spalten zu füllen. Für diese Ansicht sind jedoch keine Einschränkungen definiert.

Hat jemand eine Idee, wie wir dieses Problem beheben können? Wie können wir die Ansicht gemetry_columns zwingen, die erforderlichen Informationen abzurufen? Gibt es eine Problemumgehung oder eine andere Möglichkeit, dies zu tun?

asp
quelle

Antworten:

8

Ich habe eine Lösung für mein Problem gefunden: Alle erforderlichen Informationen finden Sie unter diesem Link https://postgis.net/docs/using_postgis_dbmanagement.html#Manual_Register_Spatial_Column

Lösung 1: Erstellen Sie die Tabelle und fügen Sie die Geometriespalte typmod hinzu. Der Erstellungsprozess würde sie korrekt in geometr_columns registrieren.
Richtig: CREATE TABLE pois_ny (gid SERIAL PRIMARY KEY, Geom-Geometrie (POINT, 4326));
Falsch: CREATE TABLE pois_ny (gid SERIAL PRIMARY KEY); SELECT AddGeometryColumn ('pois_ny', 'geom', 4326, 'POINT', 2, false);

Lösung 2: Erstellen Sie die Ansicht und erzwingen Sie typmod für die Geometriespalten,
z. B. ANSICHT ERSTELLEN vw_pois_ny_parks AS SELECT geom :: geometr (POINT, 4326) Als geom FROM pois_ny

asp
quelle