Recently, I worked on a project where we migrated an intranet from a custom PHP CMS with over 3000 pages, to Kentico V6. I had initially envisioned all the complexities that could arise from moving content from one system to another. You see, I still had fresh memories from a difficult data migration I had worked on earlier. The project involved transferring content and its relationships and metadata from a custom CMS to another popular commercial .NET-based CMS. The data migration took much longer (3 times) than anticipated, mainly due to the clunky API in the destination CMS, and its lack of tools to assist in the migration process.
Thankfully, this content migration (my first with Kentico) went very smoothly. That's right, I used the words smooth and migration together. There are two reasons why the migration went well:
- Kentico provides a data migration tool called the Import Toolkit
- The API works as expected, providing functionality for moving documents in the tree and creating relationships with other documents (e.g. assigning custom table entities, categories, and document links)
Smooth Content Migration
First, I used the Import Toolkit to do all the heavy lifting; it provides a UI for matching the fields from a source document (e.g. a news article entity) in the old CMS database with their corresponding fields in the Kentico document type.
But what about those pesky fields that don't quite match up? No problem: just write an SQL function to massage the source data so it fits "nicely" into its Kentico counterpart. For example, say your old news article had the author's name embedded in the html content. The Import Toolkit allows you to write your own SQL function to parse the html in the source, separating the author content out, and pairing it with the author field in the Kentico document type.
The Toolkit even lets you migrate your taxonomies into Kentico categories. Once I finished the Import Toolkit phase of the migration exercise, all content from the old system was represented in Kentico as document entities and all classifications were migrated either in Kentico categories or custom tables.
Screenshot from the Import Toolkit, showing how to pair source and destination fields in a document type
I then used the API to write an application to complete the migration process:
- Assign the categories associated with the migrated content
- Move the documents to specific nodes in the tree (we wanted all news articles to be placed in folders corresponding to their year and month of authorship)
If you have any questions about content migration, please feel free to email me at firstname.lastname@example.org. I just completed a migration of users from another custom CMS to Kentico using nothing but the Import Toolkit. No joke, it took less than half a day's work, and that's with testing the migration integrity.