Postgis 2.0 - widok public.geometry_columns nie zawiera poprawnych informacji dla widoków

10

Niedawno zaktualizowaliśmy naszą bazę danych do Postgis 2.0.

W naszym systemie używaliśmy widoków dla tabel zawierających kolumnę geometrii. Po utworzeniu widoku ręcznie zaktualizowaliśmy również tabelę geometry_columns o niezbędne informacje. Widoki służą do tworzenia warstw Geoserver, a także do przesyłania danych dla ogr2ogr.

Problem w Postgis 2.0 polega na tym, że tabela geometry_columns została zastąpiona widokiem, który pobiera dane z katalogów systemowych. W naszym przypadku dla utworzonych widoków nie pobieramy poprawnych informacji w kolumnach „koordyn_dimension”, „srid” i „type”.
Informacja : po kilku badaniach odkryłem, że widok geometry_columns używa tabeli pg_constraint do wypełnienia tych kolumn, ale dla tego widoku nie zdefiniowano żadnych ograniczeń.

Czy ktoś ma pojęcie, jak możemy rozwiązać ten problem? Jak możemy zmusić widok gemetry_columns do pobrania niezbędnych informacji? Czy można to obejść w inny sposób?

żmija
źródło

Odpowiedzi:

8

Znalazłem rozwiązanie mojego problemu: wszystkie potrzebne informacje można znaleźć pod tym linkiem https://postgis.net/docs/using_postgis_dbmanagement.html#Manual_Register_Spatial_Column

Rozwiązanie 1: Utwórz tabelę i dodaj oparty na typmodzie kolumna geometrii, proces tworzenia zarejestruje ją poprawnie w geometry_columns.
Prawidłowo: UTWÓRZ TABELĘ pois_ny (gid KLUCZ PODSTAWOWY SERII, geometria geom (POINT, 4326));
Niepoprawnie: UTWÓRZ TABELĘ pois_ny (klucz GID SERIAL PRIMARY KEY); WYBIERZ AddGeometryColumn („pois_ny”, „geom”, 4326, „POINT”, 2, false);

Rozwiązanie 2: Utwórz widok i wymuś typmod dla kolumn geometrii,
np. UTWÓRZ WIDOK vw_pois_ny_parks AS SELECT geom :: geometry (POINT, 4326) As geom FROM pois_ny

żmija
źródło