Recipe for successful use of Content Deployment Wizard

So my tool, the SharePoint Content Deployment Wizard has been available for some time now and I’ve been monitoring the feedback and issues people have raised closely. The current version is labelled ‘beta 2’ but I’m happy with the stability of the current codebase, so will probably re-label it as ‘release 1.0’ soon (following some feedback on the psychological aspect of the beta label :-)).

Only a small number of people have raised issues, and any problems have almost exclusively been related to the underlying Microsoft code used by the tool rather than the Wizard itself. I should probably be happy about this, but in reality if some people get errors from the tool it doesn’t really matter why it happens. The good news is that it seems Microsoft are finally getting some issues with the Content Deployment API sorted at their end. This is a key point in my list of guidance I’d give to anybody running into any errors from the Wizard. Note that the first two apply to use of standard Content Deployment using Central Admin also:

Tip 1 – Service Pack 1 and hotfixes matter

Service Pack 1 fixed many issues with Content Deployment. Unfortunately it also broke some things which had previously been fixed with pre-SP1 hotfixes. It took me a while to realize this, but it’s definitely the case. Probably the most common issue in this area is the ‘Violation of Primary Key‘ error. There are reports of being able to work around this by modifying versioning settings on certain libraries, but MS have now released a hotfix very recently which seems to solve the problem for good on SP1 environments. At the moment this is by special request only – the KB to ask for is KB950279. This forum thread discusses this, and it worked for us. Interestingly I spoke to Tyler Butler (Program Manager for Content Deployment) at SPC2008, and he indicated Content Deployment in SharePoint is likely to get “significantly more stable in the next 30-60 days”. I’m guessing this hotfix is what he was referring to, or at least part of it.

Tip 2 – always start from a blank site template an empty site created from STSADM -o createsite on the destination

The official guidance currently states that Content Deployment requires that the target site has been created from the ‘blank’ site template – this is detailed in KB article 923592. However, a better way detailed by Stefan in the comments below is to create an empty site using the STSADM -o createsite command. This is not the same as a site created from the blank template, and is the safest way to create sites which will use Content Deployment or the Wizard. What this means is that even if you’re creating a site based on say, the publishing site template in development, any other environments which you wish to deploy content to should be created in this way. Notably, for publishing sites the publishing Feature should also not be enabled for the first deployment – this will be taken care of for you when the first deployment happens. You’ll receive the same ‘object already exists’ error otherwise.

Tip 3 – pay attention to the ‘retain object IDs’ option

Generally the right option here is to select that you do want to retain the object IDs, and this should be done from the very first deployment – the only exception is when moving webs/lists to a different part of the site structure (reparenting). However, it’s important to note that mixing use of Content Deployment or the Wizard with STSADM export/import is likely to cause problems as noted by Stefan in his recommended ‘Content Deployment and Migration API – avoiding common problems‘ post.

A more comprehensive write-up of options available with the Wizard is available at ‘Using the SharePoint Content Deployment Wizard‘. Also note that’s not it as far as the tool goes – in addition to extra functionality such as item-level reparenting and incremental deployment, I hope to refactor the code so that the Wizard would be scriptable from the command-line.

And special thanks go to my colleague Nigel Price for working through the hotfix situation, much appreciated 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *