migrate method
Migrates state data from an older version to the current version.
This method is called automatically when loading persisted state that was saved with an older version number.
Return null if migration fails or the data is incompatible. The default implementation returns the json unchanged (no migration).
Example:
@override
int get version => 2;
@override
Map<String, dynamic>? migrate(Map<String, dynamic> json, int fromVersion) {
if (fromVersion == 1) {
// Migration from v1 to v2: rename 'count' field to 'value'
return {'value': json['count']};
}
return json;
}
Implementation
@protected
Map<String, dynamic>? migrate(Map<String, dynamic> json, int fromVersion) {
return json; // Default: no migration, return as-is
}