Forum QGIS

Pełna wersja: PostgreSQL
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Cześć,

Na swoim hostingu mam bazę PostgreSQL. Po połączeniu przez pgAdmin4 chcę dodać rozszerzenie "postgis". Otrzymuję jednak komunikat:


Cytat:ERROR:  could not open extension control file "/usr/local/pgsql/share/extension/postgis.control": Nie ma takiego pliku ani katalogu
SQL state: 58P01



Rozumiem przez ten komunikat, że rozszerzenie postgis nie istnieje na moim koncie hostingowym. 
Jak w takim razie wgrać na nią pliki i dostosować bazę do poprawnego działania w celu obsługo danych przestrzennych. 
Rozszerzenia przestrzenne są zainstalowane poprawnie na dysku komputera. 


Pozdrawiam,
Masz rację. Hosting musi mieć zainstalowane rozszerzenie albo przynajmniej możliwość zainstalowania z pgadmina lub terminala. Zapytaj wprost swojego dostawcę czy przewiduje coś takiego. Jeśli nie, musisz zainstalować sobie Postgresa i PostGISa na własnym serwerze.
PostgreSQL miałem już zaistalowany. Rozszerzenie PostGIS zostało zainstalowane przez dostawce usługi hostingowej. Sprawa rozwiązana.
Witam,

mam taki problem, znalazłem BUG-a albo czegoś nie rozumiem.
Warstwa z QGIS (3.14) ustawiona jako poligon, ma dodany wyzwalacz TRIGGER z oreślonymi funkcjami autouzupełniania pól.
Nawet zrobiłem prostą warstwę tylko ID, POLE_TEXT . Funkcja SQL od strony postgis bez błędów, wszystko działa.
Problem powstaje przy działaniu z warstwą punktową. Te same skrypty nie działają.
Nie obsługuje triggera prawidłowo.
Sygnał odbiera bo uruchamia funkcję. Jednak funkcja nie widzi już pól (kolumn) warstwy.

Trigger:
CREATE TRIGGER TEST_trigger
AFTER INSERT OR UPDATE OR DELETE
ON public."TEST"
FOR EACH ROW
EXECUTE PROCEDURE public.TEST_function();

Funkcja:

CREATE OR REPLACE FUNCTION public.TEST_function()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
CASE TG_OP
WHEN 'INSERT' THEN
NEW.Fild1 = (
'try to do something'
);
UPDATE public."TEST" SET "Fild1" = NEW.Fild1 WHERE pbulic."TEST"."id"=NEW.id ;

RETURN NULL;
WHEN 'UPDATE' THEN
RETURN NULL;
WHEN 'DELETE' THEN
RETURN NULL;
END CASE;
END;
$BODY$
LANGUAGE plpgsql

Czy ktoś ma jakieś doświadczenia i rozwiązania problemu?