Wie aktualisiere ich die Attributtabelle eines Layers nach dem Bearbeiten der Tabelle im DB-Manager?

14

Gibt es eine Möglichkeit, die Attributtabelle eines Layers nach dem Bearbeiten der Tabelle (z. B. Hinzufügen einer Spalte) im DB-Manager zu aktualisieren?

Mondmeer
quelle
Das changeDataSource-Plugin ist der schnellste Weg und funktioniert sehr gut mit CSV-Dateien
scataldi

Antworten:

13

Kurz und bündig:

  1. Installieren Sie das changeDataSource-Plugin .
  2. Klicken Sie im Ebenenbedienfeld mit der rechten Maustaste auf die Ebene und wählen Sie Change vector datasource.
  3. Klicken Sie im angezeigten Dialogfeld einfach auf, OKohne die Einstellungen zu ändern.

Grundsätzlich "ändern" Sie die Vektordatenquelle auf das, was sie bereits war, aber dies zwingt QGIS, die Ebenendefinition neu zu laden.

Getestet in QGIS 2.14 unter Linux Mint 17.2.

Lee Hachadoorian
quelle
Ich musste dieselbe Datenquelle erneut auswählen, damit dies funktioniert.
Sladstaetter
4

Vorausgesetzt, Sie arbeiten mit einer PostGIS-Datenbank, können Sie die Statistiken der gewünschten Tabelle mithilfe der folgenden ANALYSEFunktion aktualisieren : http://www.postgresql.org/docs/current/static/sql-analyze.html

In Ihrem Fall können Sie die Anweisung im DB-Manager ausführen, indem Sie auf die im angehängten Bild markierte Schaltfläche klicken und die ANALYSEAnweisung im ebenfalls markierten Fenster ausführen . Die Abfrage würde lauten. ANALYSE yourschema.yourtableDer Analysebefehl sollte Ihre Tabelle aktualisieren, sodass beim erneuten Zugriff auf die Informationen die von Ihnen vorgenommenen Änderungen wiedergegeben werden. DB Manager-Fenster

JonasPedersen
quelle
1
Dadurch wird die Attributtabelle nicht aktualisiert (Rechtsklick auf Ebene -> Attributtabelle öffnen).
Lunar Sea
2

Verstehe ich gut, wenn Sie die Tabelle in QGIS aktualisieren möchten, nachdem eine Änderung an den Spalten vorgenommen wurde?

Soweit ich weiß, kann dies nur durch Schließen und Öffnen des Projekts oder erneutes Hinzufügen der Tabelle geschehen. Solange Sie den Standardstil in der Datenbank gespeichert haben, ist dies möglicherweise der schnellste Weg.

Wenn eine Spalte mit dem Feldrechner hinzugefügt wird, sind die Änderungen sofort sichtbar, aber der DB-Manager bietet mehr Kontrolle bei der Definition des Feldtyps, damit ich verstehe, warum dies möglicherweise keine Lösung ist.

Nielsgerrits
quelle
Gibt es einen Python-Befehl zum Aktualisieren der Attributtabelle? Mir ist auch aufgefallen, dass 'Show Feature Count' im DB-Manager vorgenommene Änderungen ignoriert (Features hinzufügen / Features löschen).
Lunar Sea
3
layer.dataProvider().forceReload()sollte den Trick machen
Matthias Kuhn