Управление версиями данных в TDG
Управление версиями данных (версионирование) - это возможность сохранять, извлекать и восстанавливать разные версии объектов, а также отслеживать когда и какие изменения в них были внесены.
В TDG для управления версиями используется параметр
versioning, который задается в файле конфигурации
config.yml.
Когда параметр включен, в определенные моменты времени для всех созданных или модифицированных объектов сохраняются новые версии.
Например, у нас есть модель данных и тип объекта
Country, для которого включено версионирование. Спейс, где хранятся
объекты данного типа, имеет первичный ключ. Если выполняется операция по
сохранению в спейс нового объекта с таким же значением первичного ключа,
то новый объект не заменит предыдущий, а будет сохранен как новый
кортеж, но с уникальным значением timestamp, которое фиксируется
каждый раз при сохранении объекта. Это время является идентификатором
версии объекта и также сохраняется в кортеже, в котором хранится
информация об объекте.
Сочетание первичного ключа и уникального времени сохранения объекта позволяет иметь несколько версий одного и того же объекта. Это может быть полезно, если необходимо хранить историю изменения параметров объекта.
По умолчанию на хранение версий установлено ограничение - не более пяти версий для одного объекта, но вы можете выставить другое значение в config.yml.