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 векторных слоёв. Отройте настройки модуля, нажав на кнопку в панели или из главного меню перейдите в
. В подразделе «Загрузка» активируйте пункт «Версионирование объектов для загружаемых векторных слоёв».Уже загруженных в QGIS слоёв это не коснётся, для них версионирование можно включить через веб-интерфейс.