Plone Migrations

Plone
Enterprise Content Management

Plone is a highly secure content management system, presidented for use in the intranet and in intranets/extranets.

Plone is a highly secure content management system, predestined for use in the internet and in intranets/extranets.

Slider

Migration approaches

This is the first of a series of blog posts that deals with Plone migrations. I am trying to tell the story about how we are doing large-scale Plone migrations which usually involves migration of code, switching add-ons and  reorganizing content. This is usually accomplished in our migration through an export of the original Plone site and “magic” importer script on the target system. This migration approach evolved over the years. Our current approach is based on the experience and the work over the last year when we worked on a large-scale migration for the University of Ghent (90.000 content objects, 50 GB of data) and some sites for an industrial customer in Stuttgart.

In-place Plone migration

Plone 5.2 supports a so-called “in-place” migration which is usually the right choice for simple sites with simple content-types and standard add-ons like PloneFormGen. The database file of Plone 4.3 is migrated in-place and transformed into a Plone 5.2 compliant database file. This is the approach in theory. It is often necessary to perform additional work and additional migration steps to migrate an old Plone database to Python 3 format – in particular when the Plone site has a certain age and history (which often implies a lot of cruft and old configurations that can break or interfere with the standard Plone migration). We use this migration approach only for small and simple sites.

Export/Import using Transmogrifier

The export/import approach allows us to perform a clean export of the content from the old site and to perform a clean import into a fresh Plone 5.2 site. So the new site will not contain any cruft content or obsolete configurations etc. The export of the is usually accomplished using the collective.jsonify add-on for Plone which basically exports all content objects and their metadata as JSON – one JSON file per content object. We also have supplementary code to export additional Plone settings or e.g. the Plone users and groups (if need, unless users and groups are maintained in LDAP or Active Directory or something similar). The exported JSON files are the foundation for a fresh import using the Plone Transmogrifier tool. Transmogrifier is basically a processing pipeline for piping the JSON data into Plone. The import can be customized using so-called “blueprints” in order to inject project-dependent

Export/Import using Transmogrifier

The export/import approach allows us to perform a clean export of the content from the old site and to perform a clean import into a fresh Plone 5.2 site. So the new site will not contain any cruft content or obsolete configurations etc. The export of the is usually accomplished using the collective.jsonify add-on for Plone which basically exports all content objects and their metadata as JSON – one JSON file per content object. We also have supplementary code to export additional Plone settings or e.g. the Plone users and groups (if need, unless users and groups are maintained in LDAP or Active Directory or something similar). The exported JSON files are the foundation for a fresh import using the Plone Transmogrifier tool. Transmogrifier is basically a processing pipeline for piping the JSON data into Plone. The import can be customized using so-called “blueprints” in order to inject project-dependent

Our long and outstanding Plone migration experiences

We have a long and extensive experience with Plone migrations – since the earliest versions of Plone (dating back to 2002). 

Recent migration projects

University of Ghent, Belgium

Content migration of the ugent.be university site from Plone 4.3 to Plone 5.2 under Python 3.8.

  • 2019-2020
  • 100 GB of content and data
  • 100.000 content objects
  • Tasks: complete content migration, target buildout, rewrite and code migration of dozens of Plone add-ons

Dynamore GmbH

Migration of corporate customer portals dynamore.de and dynamore.se from Plone 4.3 to Plone 5.2 under Python 3.8 in 2020.

  • complete code rewrite
  • new conception for content types
  • content migration
  • new seminar solution
  • development of new portal theme

Migration of 6 project portals from Plone 4.3 to Plone 5.1 (2019).

  • complete code rewrite
  • new conception
  • content migration
  • development of new portal theme

In cooperation with Thomas Massmann (IT.Spirit) and Jan Failmezger (Monomehr)