How does the migration works in tacokit and how the migration handlers are chained to migrate the configuration
Migration handler can be defined on component class and configuration type classes (datastore, dataset).
To perform a migration correctly all the defined migration handlers need to be called in a specific order to ensure a correct migration this is something already implemented
Here is an example to shows better the concept.
Let's assume that we have a component XXInput with a configuration XXDataset that contains a nested configuration XXDatastore that itself contains a nested configuration XXConfig.
--XXInput --> version 1
— XXDataset --> version 2
----------XXDatastore --> version 3 ⇱
--------------XXConfig
Each of those levels can have a different version and a different migration handler except the latest one as it not a component nor a configuration type.
Any of those configuration can evolve in the life of a component and we need to handle the migration at each level.
In a situation where all the version evolve :
--XXInput --> version 1'
— XXDataset --> version 2'
----------XXDatastore --> version 3' ⇱
--------------XXConfig
We must call each migration handler with the corresponding version and the right config path according to it level. this is already done also
What we are missing ?
We need to serialize the version of each configuration type to be able to reuse it at the migration time.
- is parent of
-
TCOMP-988 component migration - fix nested configuration migration
- Done