Witam,
jestem relatywnie nowym użytkownikiem QGIS i jeszcze młodszym użytkownikiem PostgreSQL (obsługiwanym przy pomocy pgAdmin 4)
Mam problem, ponieważ w bazie danych mam schemat swde, a w nim tabele o nazwie dzialki (problem jest o tyle skomplikowany, że tabela ta jest powiązana z innymi tabelami w innych schematach, a mianowicie wywoływane są w nich wyzwalacze, że podczas dodawania obiektów automatycznie zaczytują się nr działek, na których wrysowywany jest obiekt).
Problem polega na tym, że moja warstwa dzialki jest już dość nieaktualna, bo ma ponad 3 lata
A ja chciałbym ją zaktualizować, ale zrobić to nie poprzez dodanie nowej tabeli ze wszystkimi działkami, tylko poprzez aktualizację istniejącej ww. tabeli “dzialki”, aby zachować wszystkie inne funkcje, które wyzwalane są w innych tabelach przy wykorzystaniu tabeli “dzialki”
Udało mi się pobrać plik z warstwą działek (SHP) dla całego powiatu, który mnie interesuje i udało mi się zdiagnozować, które konkretnie obszary wymagają aktualizacji, ale nie wiem jak to zrobić, żeby przez przypadek nie uszkodzić tabeli, wyzwalaczy, schematu czy nawet całej bazy danych.
Będę wdzieczny za każdą pomoc / sugestie / rozwiązanie, która doprowadzi mnie do zrealizowania zadania
Hm, a zanim zaczniemy się zastanawiać nad Twoim podejściem, to nie lepiej by te rzeczy, co się automatycznie zasysają z tabeli PostgreSQL, pobierały się podczas dodawania/ edycji z wiecznie aktualnych WFS via QGIS?
Jestem dość świeżym użytkownikiem, więc z góry przepraszam za terminologię.
Szczerze mówiąc to nie ja stawiałem tą bazę danych tylko przejąłem jej zarządzanie po kimś, więc nie wiem czy jest taka techniczna możliwość, ale …
Jeżeli jest taka możliwość to byłoby to idealne rozwiązanie, tylko nie wiem czy w moim przypadku by się sprawdziło, bo mam bazę danych na lokalnym serwerze i tam mamy porobione tabele w schematach w zakresie katastru tj. działki, budynki, obrębu etc. i wyświetlają się one w qgis jako warstwy SHP
Moja główna obawa jest taka, że mogę jakoś zniszczyć w bazie danych istniejących zależności pomiędzy poszczególnymi tabelami w bazie danych albo doprowadzić do awarii tabeli/schematu czy nawet całej bazy danych
I szukam jakiegoś rozwiązania, nawet nie tyle szybkiego czy prostego, ale przede wszystkim bezpiecznego
I jeżeli istnieje możliwość, o której wspomniałeś wcześnie Panie Jarosławie to z chęcią dowiem się w jaki sposób to zrealizować, jeżeli można ją zastosować w moim indywidualnym przypadku
To, że jesteś świeżym użytkownikiem QGIS czy PostgresSQL to nic złego, wręcz przeciwnie: imponuje śmiałość podejścia do tematu, tak trzymaj.
Natomiast jeśli jest to baza produkcyjna i sam do końca nie jesteś pewien co robisz, to wpierw WYSOCE ZALECAM, by tę bazę skopiować i przenieść na jakieś środowisko testowe, gdzie jak coś zepsujesz, na co jest duża szansa przy niskim doświadczeniu, to ani Ty, ani pracodawca zawału nie dostanie.
Jak przyniesiesz to daj znać, na to jest pełno poradników w sieci.
Wtedy zastanowimy się co de facto chcesz osiągnąć, jaki jest na to najlpeszy sposób w oderwaniu od obecnego rozwiązania, a potem przejrzymy się szczegółowo jemu.
Zaznaczam, że gotowego rozwiązania krok po kroku ja raczej Ci nie podam, nie do tego jest to Forum. Ale kierunek, możliwości, narzędzia pewnie ja, czy ktoś mądrzejszy, pewnie podrzuci
Bardzo ważne słowa i działania niezbędne jeśli to tak ważne rzeczy, o których mowa w pierwszym poście
Uwzględniając, że
pojawiają się pytania czy tabela/warstwa miałaby być uaktualniana cyklicznie, czy wystarczy raz na jakiś czas.
Drugie pytanie to czy jakiekolwiek inne atrybuty oprócz numerów, identyfikatorów działek są dla Ciebie istotne, zależnie jakie skarby konkretny powiat udostępnia
Tak, backup to zawsze konieczność, a nie tylko dobra praktyka. W tym przypadku dodatkowo do testów postawiłbym osobną instancję bazy danych. Możesz sobie wtedy psuć do woli, co najwyżej odtwarzając bazę z backupu jeszcze raz przed kolejną próbą testowania.
Co do samych porad to krok po korku niestety nikt rozsądny Ci tu nie rozpisze co robić bez znajomości struktury bazy jak i tych funkcji, triggerów itd. Trzeba by było pewnie skorzystać z jakiejś profesjonalnej asysty lub metodą prób i błędów na testowej instancji nauczyć się tego samemu. Tym bardziej, że jak sam przyznajesz, jesteś dość początkującym użytkownikiem.
Nasuwa mi się też myśl, że skoro dane nie były aktualizowane od 3 lat, to może dzisiejszy stan informatyzacji EGiB mógłby zmienić trochę sposób postępowania w Waszej firmie. Być może lepiej by było robić to inaczej niż do tej pory? Może jakaś automatyzacja aktualizacji danych w bazie z WFS lub plików z danymi?
Duzo jest opcji jak to zrobić sensownie, ale trzeba wiedzieć przede wszystkim jakimi dysponujesz źródłami danych oraz co właściwie chcesz/potrzebujesz osiągnąć, do czego i jak ma to służyć. Nie jest to pytanie do odpowiedzi publicznej, ale bardziej do zastanowienia dla Ciebie i firmy.
Ja robię podobne rzeczy, dużo pracuję z danymi z EGiB, więc może dam radę coś podpowiedzieć, o ile pozwoli mi czas i moja wiedza.
Tabela nie będzie musiała być aktualizowana dość często myślę, że 1 do 2 razy w roku. Poza nr działki są takie atrybuty jak nazwa gminy, nr obrębu, nazwa obrębu, id_działki (teryt), data dodania obiektów. - wszystkie te dane i wiele innych znajduje się już w danych, które pobrałem (ale je już zedytowałem pod złączenie). Pozostaje pytanie, jak teraz dokonać prawidłowo złączenia i co wydaje mi się istotne zrobić z działkami, które były i się podzieliły (czy można je usunąć, czy należy je jakoś dezaktywować - natomiast nie mam w tabeli wartości do wyboru czy dany elemnet jest aktualny/archiwalny)
Dane pobrałem poprzez QGIS (zarządzanie źródłami danych \ WFS) wgrałem link ze strony Geoportal.gov.pl do wgrania działek i budynków, następnie zapisałem tą warstwę w formacie SHP(bo w takich formatach posiadam pozostałe warstwy w projekcie). Chcę to osiągnąć po to, aby warstwa ta była relatywnie aktualna (dlatego 1-2 razy w roku to ilość aktualizacji jaką planuję).
Plik który pobrałem zapisałem w formacie SHP (bo inne warstwy też mam w takim formacie) i dostosowałem dane w tabeli plików do tabeli w aktualnie posiadanej strukturze projektów. Czytałem, że warto też dodać do istniejącej struktury taką kolumnę w której można wskazywać czy dany obiekt jest aktualny/archiwalny, co miałoby usprawnić i usystematyzować pracę w moim przypadku. Ja chciałbym wiedzieć gdzie praktyczniej jest to realizować tj. QGIS czy w PostgreSQL (poprzez pgAdmin4)
I tutaj znów dość ciężko odpowiedzieć, bo mamy tylko szczątkowe informacje. Jeśli potrzebujesz lub możesz potrzebować do czegokolwiek tych danych archiwalnych to oczywiście warto je mieć. Sposobów postępowania z takimi danymi jest kilka, m.in. kolumna z informacją czy jest aktualna lub przenoszenie nieaktualnych obiektów do tabeli z historycznymi obiektami. Co kto woli i jak mu wygodniej ogarnąć proces biznesowy, który ma być obsługiwany przez te dane.
Co do samego formatu danych to dla QGIS-a nie ma znaczenia czy wszystkie masz zapisane w SHP czy w innym formacie. Generalnie SHP nie jest najlepszym formatem, ma wiele ograniczeń i warto przestawić się na nowsze formaty (z plikowych np. GPKG).
Ciężko mi poradzić cokolwiek więcej bez bardziej szczegółowych informacji. Jeśli masz ochotę to napisz do mnie wiadomość prywatną, bo publicznie pisać o szczegółach to może trochę niezbyt rozsądnie z punktu widzenia bezpieczeństwa.