Content and data migration

When you get a new shiny CMS, you need to migrate your “legacy” data into the new system. You face many questions about the new:

  • structure
  • content types
  • metadata, classification
  • linking
  • object naming
  • folder structure or tags

Still likely the most challenging part is not technical, but human related: convince people to change their thinking about the content and the workflow. If you simply try to reimplement the same “legacy” structure and workflow with the new CMS without trying to think fresh, then maybe the new CMS won’t lead to many improvements after all.

Migration conversion

Every CMS (should) have a bulk import tool or an API what you can use for the data migration. Likely this has its own data format, at least for metadata and links. Prefer standard interfaces over proprietary ones.

Converting legacy data to new format and use the new CMS’s data import interface requires programing, it’s a project on its own where the code will only be used once. Perhaps you’ll use the same migration code (or part of it) later on when you upgrade to a newer version of the same CMS, especially if you need to cleanup or restructure your content in between the two versions.

Migration routines can also be reused when you want to automate replicating production environment and data into test and development environments, which is a complex process.

If you see the chance of reusing the migration code later on, then you should make sure that the code is written well and in a robust, general fashion, can be adopted for new needs.

The migration conversion should deal with

  1. Content conversion - uptranslation from non- or semi-structured content to structured content
  2. Metadata
  3. Links

How to test the migration?

Verifying if the migration went well, no data got lost on the way is not trivial.

We usually do:

  1. Functional testing: check if the CMS works with the new data as expected: content, metadata, links, versions… etc.
  2. Use the CMS’s export / publish function to fetch all content/data out and either do statistical compare or direct content/data compare.

results matching ""

    No results matching ""