So you want to upgrade your MOSS 2007 web content management site to SharePoint 2010? Here's my recipe of the process we've been following. Note that this was last updated on the RC version of SharePoint 2010.
The following are the steps that you need to go through:
- You need to be on MOSS 2007 first. If you're coming from SPS 2003 or CMS 2002, there is no direct upgrade path to SP2010
- You need to have SP2 installed on your MOSS 2007 environment. This is the only supported path, and SP2 includes some tools for preparing for the upgrade
- You can do either an in-place upgrade or a database attach. In-place means you actually upgrade the server that is running MOSS 2007. This doesn't give you an easy fallback position, so we're not fans of it. Content database attach means you attach a backup of the content database to a new SP2010 farm. Much safer
- First step is to run the pre-upgrade checker on your MOSS 2007 server - Stsadm –o preupgradecheck
- Review the log file that comes out of this, and perform any appropriate cleanup to your 2007 farm prior to performing the upgrade. We recommend running this step periodically even if your upgrade isn't planned for some time
- Prepare your new 2010 farm. You'll need Windows Server 64-bit for both the SharePoint and SQL servers, and SQL Server needs to be 64-bit
- Backup your existing database through SQL Server Management Studio
- Restore it to the 2010 farm's SQL Server
- Create a new web application on the 2010 farm
- Delete the content DB that was provisioned with the web application
- Attach the content database to the web application with the command line Stsadm –o addcontentdb –url siteurl –databasename DBName
At this point you should have a version of the 2007 site running in SharePoint 2010. If you look at the site, it should look very similar to the 2007 version. Even the Site Actions menu and admin pages will appear the same (other than a slight font change).
Once you've got the site in SP2010, you'll probably want to take advantage of the 2010 features like the ribbon. Here's the steps I followed to do that.
- You can preview the new user experience, or just switch the site over to use it. I figured I could always delete the content database and start over if I messed things up, so I just went ahead and upgraded the user experience
- You can find this in a number of places, bu I like the option in the top level Site Administration. There is a Visual Upgrade option, with a button to update all sites. If you're feeling brave, go ahead and hit that button (knowing that you can restore and repeat)
- If your site is like mine and used a custom master page, chances are things will blow up at this point. What SharePoint does as part of the visual upgrade is replace the master page with the new v4.master
- It wasn't clear why the site was blowing up until I turned on the full error messages. Have a look at my Seeing full error messages blog for how to change this
- The full error I was getting was “Cannot find ContentPlaceHolder 'PlaceHolderCommentPlate' in the master page '/_catalogs/masterpage/v4.master'”. Since our master page had been customized to have a content placeholder for the layout to use, SharePoint was blowing up when it tried to render our custom layout and it didn’t find our placeholder in the new master page
- At this point I turned the work over to James Brett, our master page guru, and had him compare our original master page with the new v4.master, and determine how to build a 2010 master page. I don't have all the details on that, but it involved work not only on the master page, but also the CSS to get the page working and the ribbon implemented properly
So now we have a working 2010 WCM site from our MOSS 2007 site. For an example of this have a look at http://www2010.envisionit.com, and compare it to http://www.envisionit.com. From the outside you shouldn't see much difference (other than stale content on the www2010 one), but under the hood the authoring experience is very different.