I need to design a solution where i can merge the two websites sitting in two separate instances of sitecore into one instance. I would really appreciate if anyone could point me the tools if there are any to achieve the same or what all things should i consider before writing a custom app to perform the migration.
Thanks
In addition to everything already mentioned:
Sitecore Items
As mentioned, you can use RAZL to merge content (recommended), or you could just create Sitecore Packages or even serialize the items, move then deserialize.
If these are 2 completely separate instances of Sitecore currently, with no dependencies, then I suggest you organise your current solution into separate folder within the Sitecore Content Tree. I would do this for:
If you're using Dictionaries in both sites then move them into separate Dictionary Domains if you have not done so already.
Structure your main content in such a way to make it multisite compatible. It may be better to do this before migration, but you may also break any existing queries in code depending on how they are structured.
Beware of the Home item. It's quite common to move/re-use the home item that comes installed with default Sitecore install. Make sure the guids are different between both instances. RAZL is very useful for showing you these kind of "duplicates"
Hopefully your Sitecore items are serialized (using TDS or Unicorn), which will help point you to any customizations you have made to default items and any potential areas for conflict.
Pipelines
You may need Site Specific Link Provider for your multisite implementation if you need different pipelines for each project.
Link Provider
Here's an additional implementation of a site specific link provider if you have different requirements.
Multiple Projects
If you have 2 separate projects for your codebase, merging these can be quite time-consuming. You may want to keep them separate and instead publish multiple projects from a single solution:
You may have to re-organise the file structure into separate project folders if you have conflicts (make sure you update the Sitecore Layout/Sublayout/Renderers to match).
I'm not aware of any tools to do this, but there's certain things you need to do in each instance to make them coexist without issues:
Patch Files
First make sure any config changes that deviate from the default settings are patched into a site specific include file
http://sitecore-community.github.io/docs/documentation/Sitecore%20Fundamentals/Patch%20Files/ -
This way you'll be able to keep track of settings for each site.
Providers
You may find each site has different provider settings, you can get around this using switching providers
http://sitecoreskills.blogspot.co.uk/2014/02/a-switching-link-provider.html
http://makandracards.com/hhogdev/30779-sitecore-switching-provider
Web root structure
You should endure that your files in the web root have site specific folders to avoid conflicts e.g
/site1/css, /site1/layouts
Pipeline Processors
If you have any custom pipeline processors for each site you need to make these are site specific and make sure they only run for the appropriate site.
Sitecore items
You should make sure your Sitecore items have site specific folders similar to the way your webroot is structured e.g templates/site1/page template, templates/site2/page template
Global asax
You should make sure that anything you have declared at startup in the global.asax file will not cause issues e.g any custom routes
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With