New migration approach using full export/import

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.

New approach

  • 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.

This sounds interesting!

Have you tried it on a large site? How much time it takes to migrate it?

Waiting for new details and see some code..and maybe a ploneconf talk proposal soon :wink:

it will not be slower/faster than standard full export/import over RestAPI. In the end is the target system the bottleneck and not the migrating process.