7.11. Версионирование

Хранилище векторных геоданных в NextGIS Web поддерживает версионирование — механизм накопления истории всех изменений, происходящих с объектами векторных слоёв.

Общая идея версионирования заключается в том, что при изменении, а также создании и удалении объектов, происходит регистрация этого изменения (кто и когда его осуществил), а состояние базы данных на момент до изменения специальным образом сохраняется.

В практическом смысле для администратора NextGIS Web это означает возможность:

  • Узнать время и автора любого изменения в векторном слое;

  • Узнать как, когда и кем и менялись атрибуты или пространственное положение объекта в векторном слое;

  • Получить состояние векторного слоя на любой момент времени в прошлом, откатить ошибочные изменения;

  • Получить список всех правок определенного автора;

  • Получить список всех правок за определенный период, например за день или с момента последнего обновления связанной базы данных

и так далее.

Регистрируются изменения, связанные как с атрибутивными, так и с пространственными свойствами объектов.

Версионирование по умолчанию отключено, и включается для каждого отдельного ресурса типа “Векторный слой” где это требуется. Модуль NextGIS Connect позволяет также автоматически включать версионирование для всех загружаемых в QGIS слоёв. Накопление изменений активируется с момента включения версионирования, все события, произошедшие со слоем до этого, нигде не регистрируются.

Важно

При отключении версионирования вся накопленная информация об истории изменений слоя удаляется.

7.11.1. Версионирование в графическом интерфейсе NextGIS Web

На данный момент в графический интерфейс NextGIS Web вынесено только:

  • Включение и выключение версионирования в свойствах векторного слоя

  • Дополнительное виртуальное поле “Последнее изменение” в таблице атрибутов версионируемого слоя. Оно позволяет для каждого объекта слоя увидеть автора и время последнего изменения.

Планируется постепенное расширение инструментов работы с версионируемыми слоями через графический интерфейс.

7.11.2. Версионирование в программном интерфейсе NextGIS Web

Основные возможности получения информация о версионируемых слоях сейчас доступны только в API NextGIS Web. Через запросы к API можно получать состояния слоёв и объектов на разные периоды времени, разницу между разными состояниями и так далее. Примеры методов API для работы с версионируемыми слоями:

  • /api/resource/{id} в общем обращении к слою доступна информация о состоянии версионирования и текущей версии данных (свойство versioning)

  • /api/resource/{id}/feature/ с указанием версии слоя для получения его состояния в заданной версии

  • /api/resource/{id}/feature/changes/check для получения информации о разнице между двумя заданными версиями слоя

  • /api/resource/{id}/feature/version/{vid} для получения метаданных о заданной версии

7.11.3. Использование версионирования в интеграции с QGIS

Версионирование активно используется в NextGIS Connect — модуле интеграции NextGIS Web с настольной ГИС QGIS. При включенном версионировании QGIS может получать информацию о всех изменениях, произошедших со слоем, хранящимся в NextGIS Web, за время с последнего обращения. Это позволяет, в частности, вести одновременное редактирование одного и того же слоя на сервере с разных рабочих станций QGIS одновременно.

С помощью NextGIS Connect можно включить версионирование объектов для загружаемых в QGIS векторных слоёв. Отройте настройки модуля, нажав на кнопку в панели или из главного меню перейдите в Настройки ‣ Параметры ‣ NextGIS ‣ NextGIS Connect. В подразделе «Загрузка» активируйте пункт «Версионирование объектов для загружаемых векторных слоёв».

../../_images/ngc_settings_versioning_ru.png

Рис. 7.154. Включение версионирования в настройках NextGIS Connect

Уже загруженных в QGIS слоёв это не коснётся, для них версионирование можно включить через веб-интерфейс.