Як оновити таблицю атрибутів шару після редагування таблиці в DB-Manager?


14

Чи є спосіб оновити таблицю атрибутів шару після редагування таблиці (наприклад, додати стовпець) у DB-Manager?


плагін changeDataSource - це найшвидший спосіб і дуже добре працює з .csv файлами
scataldi

Відповіді:


13

Коротке і солодке:

  1. Встановити плагін changeDataSource .
  2. Клацніть правою кнопкою миші на шарі на панелі «Шари» та виберіть Change vector datasource.
  3. У діалоговому вікні, що з’явиться, просто натисніть, OKне змінюючи жодного з налаштувань.

По суті, ви "змінюєте" векторний джерело даних таким, яким він був, але це змушує QGIS перезавантажити визначення шару.

Тестовано у QGIS 2.14 на Linux Mint 17.2.


Мені довелося переібрати той самий джерело даних, щоб це працювало.
sladstaetter

4

Якщо припустити, що ви працюєте з базою даних PostGIS, ви можете оновити статистику цікавої таблиці за допомогою ANALYSEфункції: http://www.postgresql.org/docs/current/static/sql-analyze.html

У вашому випадку ви можете виконати оператор всередині DB-менеджера, натиснувши кнопку, позначену на зображенні, що додається, та виконати ANALYSEоперацію у вікні, яке також позначено. Запит буде ANALYSE yourschema.yourtable. Команда аналізу повинна оновити вашу таблицю, щоб, коли ви знову отримуєте доступ до інформації, вона повинна відображати внесені вами зміни. Вікно менеджера БД


1
Це не оновлює таблицю атрибутів (клацніть правою кнопкою миші на шарі -> Відкрити таблицю атрибутів).
Місячне море

2

Я добре розумію, якщо ви хочете оновити таблицю в QGIS після внесення змін до стовпців?

Наскільки я знаю, це лише відбудеться та закрити проект або відкрити повторне додавання таблиці. Поки ви зберігаєте стиль за замовчуванням у базі даних, який може бути найшвидшим способом.

Коли додається стовпець із Field Calculator, зміни миттєво помітні, але менеджер БД пропонує більше контролю у визначенні типу поля, тому я розумію, чому це може бути не рішенням.


Чи є якась команда Python для оновлення таблиці атрибутів? Я також помітив, що "Показати кількість функцій" ігнорує зміни, внесені в DB-менеджер (додавання функцій / видалення функцій).
Місячне море

3
layer.dataProvider().forceReload()повинні зробити трюк
Маттіас Кун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.