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?


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.


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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.