1. A method for migrating a version of a data source from an initial version to a target version required by a target system, the method comprising: retrieving a set of target metadata; retrieving a plurality of migration rules; and for each of the plurality of migration rules: identifying a data unit of the initial version of the data source subject to a respective migration rule, analyzing, based on the respective migration rule, the target metadata and the identified data unit to determine at least one difference between the identified data unit and the target metadata, wherein the target metadata describes a structure of the data source required by the target version of the data source, relative to the respective migration rule, and transforming the data unit using the determined at least one difference, wherein the transformed data unit conforms to the structure of the data source required by the target system, as specified by the target metadata.