Do instalacji modułu PostGIS mamy wiele możliwości:
- możemy zainstalować to ze strony https://www.enterprisedb.com/downloads/postgres-postgresql-downloads a potem doinstalować postGIS
- możemy użyć kontenera skonfigurowanego dla Dockera (windows/linux), to wymaga Dockera 🙂
- możemy użyć linuxa i instalatora typu apt, lub wsl2 na windowsie (u mnie Ubuntu)
Ja wybrałem wersje https://www.enterprisedb.com/downloads/postgres-postgresql-downloads, wersja ta zawiera Stack Builder (który pomaga doinstalować moduły do PostgreSQL)

Ściągamy zatem wersje Windows x86-64 i instalujemy.
Wybieramy lokalizacje instalacji, hasło dla administacyjnego usera postgres-a (zapamietajmy je) i port (jak nie mamy więcej instancji postrgresa to zostawmy default). Potem baza zaczyna sie instalować.
Po zakończeniu instalacji wybieramy aby uruchomiło nam Stack Buildera

Stack Builder poprosi nas o wybranie instalacji Postgres którą chcemy „modyfikować”, wybieramy naszą.

a potem doznaczamy co Stack Builder ma nam doinstalować (u nas PostGIS).

następnie wybieramy download directory (u mnie default user dir), to jest folder do którego zostaną ściągniete pliki instalacyjne.

Po naciśnięciu Next, czekamy (u mnie trwało to trochę zanim wogóle zaczęło się sciągać, proszę nie panikować).
Następnie musimy przeprowadzić instalacje ściągniętych modułów

Kolejno (I agree) o ile zgadzamy się z licencją …

Next (wybór komponentów) i Next (wybór lokalizacji instalacji, default w folderze Postgres-a) w kolejnych krokach, potem Close w ostatnim.

Teraz możemy wrócić do Stack Buildera i nacisnąć Finish

No i mamy juz działającego PostgreSQL z zainstalowanym modułem postGIS.
Wejdźmy teraz do pgAdmina (tutaj 4)

wybieramy naszą bazę i podajemy do niej hasło (u mnie jest więcej baz, nas interesuje aktualnie PostgreSQL 17)

Potem wybieramy żółte pole, to otworzy nam Query Tool , okienko gdzie będziemy sie porozumiewać z posgreSQL, wpisujemy
CREATE EXTENSION postgis;
i klikamy w strzałkę powyżej. (Execute Script). To instaluje nam w bazie funkcje postGIS.

Następnie możemy sprawdzić czy postGIS został poprawnie zainstalowany poprzez wpisanie i uruchomienie skryptu jak powyżej:
SELECT PostGIS_Full_Version();
Zwróci to nam Dane w Data Output poniżej.

Ok, utwórzmy teraz nowego usera „qgis” , który będzie mogł grzebać tylko w swoim scheme (obszarze, schemacie), ale też będzię mógł korzystać z dobrodziejstw postgis-a, Najcześciej tworzy się schematy z tą samą nazwą co user, więc stworzymy usera i schemat „qgis”, i nadamy mu uprawnienia.
Wykonujemy (Execute script [F5]) poniższe
-- tworzymy usera qgis i nadajemy mu haslo
CREATE USER qgis WITH PASSWORD 'qpass';
-- tworzymy miejsce pracy usera
CREATE SCHEMA AUTHORIZATION qgis;
-- zezwalamy zeby nasz nowy user mogl sie logowac do bazy
GRANT CONNECT ON DATABASE postgres TO qgis;
-- zezwalamy zeby nasz nowy user mogl korzystac z publicznej schema,
-- tam sa min zainstalowane funkcje postgisa
GRANT USAGE ON SCHEMA public TO qgis;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO qgis;
GRANT ALL ON geometry_columns TO qgis;
GRANT ALL ON spatial_ref_sys TO qgis;
Teraz w teorii moglibyśmy się już zalogować z poziomu QGIS i sprawdzić czy serwer zezwala nam na połączenie.

Wpisujemy nasze dane logowania
- Nazwa : dowolna nazwa rozpoznawalna dla nas, nie zalecam spacji
- Usługa : nie definiowalismy danych usługi, pozostawiamy puste
- Host : u nas localhost (baza lokalna)
- Port : o ile podczas instalacji nie zmienilismy to port bedzie default 5432
- Baza danych : postgres (defaultowa nazwa)

Potem klikamy Test Połączenia i podajemy naszego user/pass i klikamy OK

Teraz mozemy kliknac OK, połączenie zostało zdefinowane a QGIS już je dodał do listy.
Definowaniem tabel i warstw zajmiemy się w nastepnym wpisie.
Co dzisiaj zrobilismy:
- Zainstalowalismy na Windows 11 lokalny serwer PostgreSQL
- Zainstalowaliśmy i aktywowaliśmy moduł postGIS
- Stworzylismy usera i scheme dla naszego usera
- Nadaliśmy mu uprawnienia żeby mógł się łączyć i korzystać z dobrodziejstw postGIS
- Skonfigurowaliśmy połączenie z postgreSQL w QGIS
Czego nie zrobiliśmy:
- nic nie zrobiliśmy w kwestiach bezpieczenstwa, zakładam że będzie to lokalna testowa baza danych do nauki
- zalecam tez wybranie innego niz 'qpass’ hasla 🙂
Dodaj komentarz