Update Guide
This guide explains breaking changes and migration steps when you upgrade Data Migrator.
The Data Migrator follows semantic versioning.
Version compatibility
Before you update, do the following:
- Check the version compatibility matrix to confirm compatibility with your Camunda 7 and Camunda 8 versions.
- Review the Data Migrator release notes for your target version.
Update process
- Review the breaking changes for your target version.
- Update your custom interceptors and configuration.
- Test the migration in a non-production environment.
- Back up the migration state database.
- Update the Data Migrator binaries.
- Validate your custom code.
Breaking changes by version
Version 0.1.x to 0.2.0
Release date: TBD Camunda 8 compatibility: 8.9
Variable interceptor API changes
This release updates the variable interceptor API to support history migration and improve context awareness.
-
VariableInvocationrenamed toVariableContext// BEFORE (0.1.x)
public void execute(VariableInvocation invocation) {
VariableInstanceEntity variable = invocation.getC7Variable();
String processInstanceId = variable.getProcessInstanceId();
invocation.setVariableValue(transformedValue);
}
// AFTER (0.2.0+)
public void execute(VariableContext context) {
VariableInstanceEntity variable = (VariableInstanceEntity) context.getEntity();
String processInstanceId = variable.getProcessInstanceId();
String name = context.getName();
Object value = context.getC7Value();
context.setC8Value(transformedValue);
} -
MigrationVariableDtoclass removed- Use
VariableContextmethods directly instead getName()andgetC8Value()/setC8Value()replace DTO access
- Use
Migration steps
- Update method signature from
VariableInvocationtoVariableContext - Replace
invocation.getC7Variable()withcontext.getC7Value()orcontext.getC7TypedValue() - Replace
invocation.getMigrationVariable().getName()withcontext.getName() - Replace
invocation.setVariableValue()withcontext.setC8Value() - Optionally add entity type filtering using
getEntityTypes() - Optionally add runtime/history context detection using
context.isRuntime()orcontext.isHistory()