Логирование и версионирование в ФВД

 

Функция логирования и версионирования в ФВД позволяет фиксировать изменения записей в таблицах ввода данных, а также хранить информацию о предыдущих версиях данных. Это помогает отслеживать, кто и когда внес изменения, а также какие данные были изменены.

Настройка версионирования

Для активации версионирования:

  1. Перейдите в меню Администрирования.
  2. Откройте раздел «Таблицы».
  3. Выберите Хранилище данных из выпадающего списка.
  4. Выберите нужную Таблицу ФВД из выпадающего списка.
  5. Нажмите на кнопку «Создать таблицу версионирования».

После нажатия на кнопку в том же хранилище создастся новая таблица с именем [исходное_название]_versioning (например, если исходная таблица называется test_fvd, то таблица версионирования будет test_fvd_versioning).

Как работает логирование и версионирование

  • Логирование включено по умолчанию и фиксирует изменения в системе.
  • Версионирование записывает изменения записей в отдельную таблицу.
  • Если пользователь редактирует данные через портал или API, изменения будут логироваться и сохраняться в таблице версионирования.
  • Если данные изменяются через сторонние ПО (ETL, DBeaver и т. д.), они не логируются и не версионируются.

Удаление таблицы версионирования

Если таблица версионирования была создана, кнопка «Создать таблицу версионирования» заменяется на «Удалить таблицу версионирования».

 

При нажатии на «Удалить таблицу версионирования» будет выведено предупреждение.

Восстановление данных таблицы версионирования невозможно после удаления. Если удаляется исходная таблица ФВД, то вместе с ней автоматически удаляется и таблица версионирования с аналогичным предупреждением.

Нажмите кнопку «Удалить» для удаления или кнопку «Отмена» для отмены удаления.

Просмотр данных таблицы версионирования

Просматривать изменения можно двумя способами:

  • просмотр базы данных – найдите таблицу [название_таблицы]_versioning в хранилище данных;

 

  • использование интерфейса портала – создайте новую таблицу ФВД на основе таблицы хранилища [название_таблицы]_versioning, после чего можно просматривать изменения через стандартный интерфейс.

Данные таблицы версионирования

Каждое изменение в таблице ФВД сохраняется в versioning-таблице и содержит:

  • Дата и время изменения (date_change);
  • Тип события (event): Создание, Изменение, Удаление;
  • ID пользователя (user_id);
  • Данные до изменения (before) в формате JSON;
  • Данные после изменения (after) в формате JSON;
  • Версия записи (version).
Важные особенности:
  • версионирование можно включать и выключать в любой момент;
  • если структура таблицы ФВД изменилась (добавлены новые поля), таблица версионирования остается неизменной;
  • данные из таблицы версионирования нельзя восстановить обратно в исходную таблицу – она предназначена только для просмотра истории изменений;
  • групповые изменения фиксируются построчно – если изменилось N записей, в таблице версионирования появится N новых записей;
  • все обновления происходят в рамках одной транзакции, поэтому данные синхронизированы.