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?
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?
Réponses:
Court et doux:
Change vector datasource
.OK
sans 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.
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 ANALYSE
fonction:
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' ANALYSE
instruction 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.
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.
layer.dataProvider().forceReload()
devrait faire l'affaire