Jak odświeżyć tabelę atrybutów warstwy po edycji tabeli w DB-Managerze?

14

Czy jest jakiś sposób na odświeżenie tabeli atrybutów warstwy po edycji tabeli (np. Dodanie kolumny) w DB-Managerze?

Morze Księżycowe
źródło
Wtyczka changeDataSource jest najszybszym sposobem i działa bardzo dobrze z plikami .csv
scataldi 10.10.17

Odpowiedzi:

13

Krótkie i słodkie:

  1. Zainstaluj wtyczkę changeDataSource .
  2. Kliknij warstwę prawym przyciskiem myszy w panelu Warstwy i wybierz Change vector datasource.
  3. W wyświetlonym oknie dialogowym wystarczy nacisnąć OKbez zmiany żadnego z ustawień.

Zasadniczo „zmieniasz” źródło danych wektorowych na to, co już było, ale to zmusza QGIS do ponownego załadowania definicji warstwy.

Testowane w QGIS 2.14 na Linux Mint 17.2.

Lee Hachadoorian
źródło
Musiałem ponownie wybrać to samo źródło danych, aby to zadziałało.
sladstaetter
4

Zakładając, że pracujesz z bazą danych PostGIS, możesz zaktualizować statystyki tabeli zainteresowań, korzystając z ANALYSEfunkcji: http://www.postgresql.org/docs/current/static/sql-analyze.html

W twoim przypadku możesz wykonać polecenie wewnątrz DB-managera, naciskając przycisk oznaczony na załączonym obrazie i wykonując ANALYSEpolecenie w oknie, które jest również zaznaczone. Zapytaniem byłoby ANALYSE yourschema.yourtable. Polecenie analizy powinno zaktualizować tabelę, aby po ponownym uzyskaniu dostępu do informacji odzwierciedlała dokonane zmiany. Okno menedżera DB

JonasPedersen
źródło
1
To nie odświeża tabeli atrybutów (kliknij prawym przyciskiem myszy warstwę -> Otwórz tabelę atrybutów).
Lunar Sea
2

Czy rozumiem dobrze, jeśli chcesz odświeżyć tabelę w QGIS po wprowadzeniu zmian w kolumnach?

O ile mi wiadomo, tylko zamknięcie i otwarcie projektu lub ponowne dodanie tabeli spowoduje, że tak się stanie. Tak długo, jak zapisałeś domyślny styl w bazie danych, może to być najszybszy sposób.

Po dodaniu kolumny z kalkulatorem pola zmiany są natychmiast widoczne, ale menedżer DB oferuje większą kontrolę w definiowaniu typu pola, więc rozumiem, dlaczego nie jest to rozwiązanie.

nielsgerrits
źródło
Czy jest jakieś polecenie Pythona do odświeżania tabeli atrybutów? Zauważyłem również, że funkcja „Pokaż liczbę funkcji” ignoruje zmiany wprowadzone w DB-Managerze (dodawanie funkcji / usuwanie funkcji).
Morze Księżycowe
3
layer.dataProvider().forceReload()powinien załatwić sprawę
Matthias Kuhn