Comment rafraîchir la table attributaire d'une couche après avoir édité la table dans DB-Manager?

14

Existe-t-il un moyen de rafraîchir la table attributaire d'une couche après avoir édité la table (par exemple ajouter une colonne) dans DB-Manager?

Mer lunaire
la source
le plugin changeDataSource est le moyen le plus rapide et fonctionne très bien avec les fichiers .csv
scataldi

Réponses:

13

Court et doux:

  1. Installez le plugin changeDataSource .
  2. Cliquez avec le bouton droit sur le calque dans le panneau Calques et sélectionnez Change vector datasource.
  3. Dans la boîte de dialogue qui apparaît, appuyez simplement sur OKsans modifier aucun des paramètres.

Fondamentalement, vous "modifiez" la source de données vectorielles à ce qu'elle était déjà, mais cela force QGIS à recharger la définition de la couche.

Testé dans QGIS 2.14 sous Linux Mint 17.2.

Lee Hachadoorian
la source
J'ai dû resélectionner la même source de données pour que cela fonctionne.
sladstaetter
4

En supposant que vous travaillez avec une base de données PostGIS, vous pouvez mettre à jour les statistiques de la table d'intérêt en utilisant la ANALYSEfonction: http://www.postgresql.org/docs/current/static/sql-analyze.html

Dans votre cas, vous pouvez exécuter l'instruction à l'intérieur du gestionnaire de base de données en appuyant sur le bouton marqué dans l'image jointe et en exécutant l' ANALYSEinstruction dans la fenêtre, qui est également marquée. La requête serait ANALYSE yourschema.yourtable. La commande d'analyse devrait mettre à jour votre table, de sorte que lorsque vous accédez à nouveau aux informations, elle reflète les modifications que vous avez apportées. Fenêtre du gestionnaire de base de données

JonasPedersen
la source
1
Cela ne rafraîchit pas la table d'attributs (clic droit sur la couche -> Ouvrir la table d'attributs).
Mer lunaire
2

Est-ce que je comprends bien si vous voulez actualiser la table dans QGIS après une modification des colonnes?

Pour autant que je sache, seulement fermer et ouvrir le projet ou rajouter la table fera que cela se produira. Tant que vous avez enregistré le style par défaut dans la base de données, ce qui pourrait être le moyen le plus rapide.

Lorsqu'une colonne est ajoutée avec la calculatrice de champ, les modifications sont instantanément visibles, mais le gestionnaire de base de données offre plus de contrôle dans la définition du type de champ, donc je comprends pourquoi ce n'est peut-être pas une solution.

nielsgerrits
la source
Existe-t-il une commande Python pour actualiser la table attributaire? J'ai également remarqué que «Show Feature Count» ignore les modifications apportées dans DB-Manager (ajouter des fonctionnalités / supprimer des fonctionnalités).
Lunar Sea
3
layer.dataProvider().forceReload()devrait faire l'affaire
Matthias Kuhn