Thursday, May 1, 2008

SharePoint Subsite Move Up 1 Level

by Zac Smith, 9 July 2007
Had a situation recently where I needed to promote a subsite to a top level site. As STSADM backup/restore can only be used at the site collection level, a different approach was required.
As of WSS v3, there are two new STSADM commands - import and export.
The basic procedure to promote the subsite was to STSADM export the site to a file and then STSADM import it at the toplevel.
Here are the basic commands I used:

Export subsite
stsadm -o export -url http://toplevel/sub_site/subsite -filename c:\subsite.bak -includeusersecurity -versions 4

Import subsite
stsadm -o import -url http://toplevel/subsite/ -filename c:\subsite.bak -includeusersecurity

A couple of things to note:
The -includeusersecurity switch ensures that all the columns such as modifed by, created by are maintained.

The -versions 4 switch will ensure that all versions of list items/documents are exported.

You must import/export to sites that share the same template. So a team site can only be exported and imported into another team site. You will know you are trying to import into non matching templates if you get the following error:

"The exported site is based on the template STS#1 but the destination site is based on the template STS#0"

This means that a site based on the blank template is trying to be imported into a site based on the team template. To my knowledge there is no easy way of changing a sites templates.
The following lists some of the common WSS templates:

Team SiteSTS#0
Blank SiteSTS#1
Document WorkspaceSTS#2
Wiki SiteWIKI#0