Czy jest jakiś sposób na odświeżenie tabeli atrybutów warstwy po edycji tabeli (np. Dodanie kolumny) w DB-Managerze?
Czy jest jakiś sposób na odświeżenie tabeli atrybutów warstwy po edycji tabeli (np. Dodanie kolumny) w DB-Managerze?
Odpowiedzi:
Krótkie i słodkie:
Change vector datasource
.OK
bez 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.
Zakładając, że pracujesz z bazą danych PostGIS, możesz zaktualizować statystyki tabeli zainteresowań, korzystając z ANALYSE
funkcji:
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 ANALYSE
polecenie 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.
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.
layer.dataProvider().forceReload()
powinien załatwić sprawę