Como atualizar a tabela de atributos de uma camada após editar a tabela no DB-Manager?

14

Existe alguma maneira de atualizar a tabela de atributos de uma camada após editar a tabela (por exemplo, adicionar uma coluna) no DB-Manager?

Mar Lunar
fonte
o plugin changeDataSource é o caminho mais rápido e funciona muito bem com arquivos .csv
scataldi

Respostas:

13

Curto e grosso:

  1. Instale o plug-in changeDataSource .
  2. Clique com o botão direito do mouse na camada no painel Camadas e selecione Change vector datasource.
  3. Na caixa de diálogo exibida, basta pressionar OKsem alterar nenhuma das configurações.

Basicamente, você está "alterando" a fonte de dados vetoriais para o que já era, mas isso força o QGIS a recarregar a definição da camada.

Testado no QGIS 2.14 no Linux Mint 17.2.

Lee Hachadoorian
fonte
Eu tive que selecionar novamente a mesma fonte de dados para que isso funcionasse.
2015
4

Supondo que você esteja trabalhando com um banco de dados PostGIS, você pode atualizar as estatísticas da tabela de interesse usando a ANALYSEfunção: http://www.postgresql.org/docs/current/static/sql-analyze.html

No seu caso, você pode executar a instrução dentro do gerenciador de banco de dados pressionando o botão marcado na imagem anexada e executando a ANALYSEinstrução na janela, que também é marcada. A consulta seria ANALYSE yourschema.yourtable. O comando de análise deve atualizar sua tabela, para que, quando você acessar as informações novamente, reflita as alterações feitas. Janela do gerenciador de banco de dados

JonasPedersen
fonte
1
Isso não atualiza a tabela de atributos (clique com o botão direito na camada -> Abrir Tabela de Atributos).
Mar Lunar
2

Entendo bem se você deseja atualizar a tabela no QGIS após uma alteração nas colunas?

Até onde eu sei, apenas feche e abra o projeto ou adicione novamente a tabela para que isso aconteça. Contanto que você salve o estilo padrão no banco de dados que pode ser o caminho mais rápido.

Quando uma coluna é adicionada com a Calculadora de campo, as alterações são visíveis instantaneamente, mas o gerenciador de banco de dados oferece mais controle na definição do tipo de campo. Entendo por que isso pode não ser uma solução.

nielsgerrits
fonte
Existe algum comando Python para atualizar a tabela de atributos? Também notei que 'Mostrar contagem de recursos' ignora as alterações feitas no DB-Manager (adicionar recursos / excluir recursos).
Mar Lunar
3
layer.dataProvider().forceReload()deve fazer o truque
Matthias Kuhn