Over the last week I could work on a new migration strategy which follows the full export full import approach which we are using pretty often in Plone migration projects. We intended to use Transmogrier first but it is currently just not available in a working state for Plone 5.2 and Python 3.
- we perform a full export of the original site using collective.jsonify
- the exported JSON files (one per content object) will be imported into a document database. We are using ArangoDB for this purposes (tried MongoDB first but MongoDB has a 16 MB BSON limit which does not allow us import JSON files larger than 16MB which does not work for larger File objects)
- using ArangoDB we are able to query data from the original site fast e.g. for partial imports
- a new "magic" migration script can create a new plone site using plone.restapi and a minimal provisioning API and import either the full site or a subsite or a single folder with its subcontent
- the migration script reconstructs in the first migration phase the complete folder structure and in a step later will will import all leaf content objects like File, Image, Document etc.