When writing in-place store migration scripts, it is usually necessary to access both, the old and the new version of the code to execute migration. E.g. if the store keys are changed in a new version 'n', the in-place store migration scripts have to be written to migrate the store data. This requires reading old values using the keys from the previous version 'n-1' and saving the values in the store under the new keys from version 'n'. To be able to do this without depending on the current code in development, it is necessary to have the migration folders organized by versions. For example, if migrations are written to upgrade store keys from released version 1 to version 2 there will be folders v1 and v2 beneath the migrations folder. A file containing keys from version 1 will be placed in folder v1. Similar, a file containing keys from version v2 will be placed in folder v2. The scripts written to migrate store from version 1 to version 2 must be placed in v2 and use the keys from the package v1 to retrieve the data from the store, and keys from the package v2 to save the data under the new keys.