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?
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?
Risposte:
Breve e dolce:
Change vector datasource
.OK
senza 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.
Supponendo che tu stia lavorando con un database PostGIS, puoi aggiornare le statistiche della tabella di interesse utilizzando la ANALYSE
funzione:
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' ANALYSE
istruzione 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.
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.
layer.dataProvider().forceReload()
dovrebbe fare il trucco