Use independent models for data migration
Currently, migrations use the latest version of models. This would cause issues once there are multiple migrations affecting the same model. E.g. if a property is removed from a model and a migration is expected to run for all data still having this this property this wouldn't work if a previous migration already updated date with the new model.
Proposal
To fix this issue, migrations should use their own entity models which include only the properties relevant for the migration but store all other properties in a map so they can be written back unchanged to the database.
Edited by Daniel Gerhardt