Come aggiornare la tabella degli attributi di un layer dopo aver modificato la tabella in DB-Manager?


14

Esiste un modo per aggiornare la tabella degli attributi di un layer dopo aver modificato la tabella (ad esempio aggiungere una colonna) in DB-Manager?


il plugin changeDataSource è il modo più veloce e funziona molto bene con i file .csv
scataldi

Risposte:


13

Breve e dolce:

  1. Installa il plugin changeDataSource .
  2. Fai clic con il pulsante destro del mouse sul livello nel pannello Livelli e seleziona Change vector datasource.
  3. Nella finestra di dialogo che appare, basta premere OKsenza modificare nessuna delle impostazioni.

Fondamentalmente, stai "cambiando" l'origine dati vettoriale in quello che era già, ma questo costringe QGIS a ricaricare la definizione del livello.

Testato in QGIS 2.14 su Linux Mint 17.2.


Ho dovuto riselezionare lo stesso datasource per farlo funzionare.
sladstaetter,

4

Supponendo che tu stia lavorando con un database PostGIS, puoi aggiornare le statistiche della tabella di interesse utilizzando la ANALYSEfunzione: http://www.postgresql.org/docs/current/static/sql-analyze.html

Nel tuo caso puoi eseguire l'istruzione all'interno del gestore DB premendo il pulsante contrassegnato nell'immagine allegata ed eseguendo l' ANALYSEistruzione nella finestra, anch'essa contrassegnata. La query dovrebbe essere ANALYSE yourschema.yourtable. Il comando analizza dovrebbe aggiornare la tabella, in modo che quando si accede nuovamente alle informazioni dovrebbe riflettere le modifiche apportate. Finestra del gestore DB


1
Questo non aggiorna la tabella degli attributi (tasto destro del mouse sul livello -> Apri la tabella degli attributi).
Mare lunare

2

Capisco bene se intendi aggiornare la tabella in QGIS dopo aver apportato una modifica alle colonne?

Per quanto ne so, chiudere e aprire il progetto o aggiungere nuovamente la tabella consentirà che ciò accada. Finché hai salvato lo stile predefinito nel database che potrebbe essere il modo più veloce.

Quando una colonna viene aggiunta con il calcolatore di campo, le modifiche sono immediatamente visibili ma il gestore DB offre un maggiore controllo nella definizione del tipo di campo, quindi capisco perché potrebbe non essere una soluzione.


Esiste un comando Python per aggiornare la tabella degli attributi? Ho anche notato che "Mostra conteggio funzioni" ignora le modifiche apportate in DB-Manager (aggiungi funzionalità / elimina funzionalità).
Mare lunare,

3
layer.dataProvider().forceReload()dovrebbe fare il trucco
Matthias Kuhn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.