Implentation of Transformations

Transformations are implemented with three different interface implementations:

  1. ComponentTransformator
  2. TransformationSequence
  3. TransformationStep

ComponentTransformator

The component transformator is responsible for a single part (component) of the system under transformation. These parts may be different databases or database schemas, OS settings, component installations like databases, application servers or services, and all other parts which might need migrations during application lifecycle.

The ComponentTransformator provides basic information about the component and also the list of transformation sequences.

TransformationSequence

The transformation sequences is a set of transformation steps providing the transformation from one version of the system to another version. The sequences must be succeeding one after another without a version gap.

It is also possible to have additional sequences for larger migrations steps after consolidation. For instance, for development transformations are needed from start version 0.0.0 over 0.1.0 and so forth to version 1.0.0. After that, a consolidation might take place which provides a new sequence for start version 0.0.0 and target version 1.0.0. With this approach evolutionary steps might be skipped and migrations might be much faster.

TransformationStep

A transformation step is a single transformation like creating a single table, adding some data into a database, creating a single file and so forth.

Fork me on GitHub