10 March 2011

Synkron to Sitecore Migration -Module

When my team gets a new Sitecore project often we need to deal with some data migration and quite often it is some other CMS that we need to migrate to Sitecore.
We have migrated quite a few sites from Synkron to Sitecore and slowly we built a small but quite powerful migration tool for it instead of getting headaches over the versions and data schemas on every migration.

The Synkron conversion is made as a native Sitecore Application. All operations are Sitecore Jobs, so during the import you can still use Sitecore ;) without any problem.

Synkron to Sitecore App. OK, it is not a prettiest app in Sitecore but it gets job done. :)

User interface

1. Import media
Copies the Files from a location under Sitecore upload folder where a custom UploadWatcher  creates the structure into media library

2. Import metadata 
This is usually only used once to import the metadata tags from Synkron.

3. Import items
We have 2 .XML files that contains rules of import like Synkron item "x" becomes an item from "y" Sitecore template and one of configurations which says from which Synkron item to start the import, what is the Sitecore parent, default paths... etc...

4. Delete what was imported 
Only deletes regular items, not media items , and only under the parent that it's configured into config.xml

5. Stop Importing
Stops the importing of the items.

A.  Progress bar
Tells current progress of the import.

B.  Number of processed item
Text box that shows how many items are imported in real time.

More technical info

Data is read on direct connection to the Synkron database from where with Stored Procedure, we are reading information and process it at different levels. Naturally we use Sitecore's API for every operation that concerns Sitecore part. (creating items.... changing templates etc.)

Media Library and Links
When the import is running all the links that contains Synkron media (files, images) are replaced with the corresponding Sitecore media links "/~/media/.. ashx".
We also keep the exact hierarchy from Synkron,  this way we minimize editor re-training.

Synkron CMS like Sitecore CMS has many modules but we've only import SearchPlus as I have not seen much use to import more of them (yet). However, if modules is needed it just requires few lines of code to SP (all modules I have seen are pretty straight forward).

SEO (301 redirects)
When importing from Synkron, a table of mapping is filled with the old paths from Synkron like "swID.asp" and the new location like "/Home/myitem.aspx".
This table is used for redirecting the old link to the Sitecore links (if you click a link like "swID.asp" .. we'll know that you must be redirected to "/Home/myitem.aspx" ).

Of course migration is always something that requires some custom configuration and we’ve learned new thing about every migration. But now we can do that effectively with XML configuration and sometimes some changes to SP's in case there are some strange custom stuff in Synkron data.

No comments: