View Khurram Jamshed's profile on linkedin

Thursday, December 2, 2010

Migrating Content Data from Project Server 2007 to Project Server 2010

Recently i have migrated Project Server 2007 data to Project Server 2010. Restore and Backup of the following 4 Project Web App 2007 databases had restored all the Project data, custom fields, views and etc.

  • Project Server Archive
  • Project Server Draft
  • Project Server Published
  • Project Server Reporting
I have also had to migrate the content data from Project Web App, such as:
  • lists
  • folders
  • list items (including files)
The migration of PWA artifacts is something that’s perhaps more complex than it should be. And in almost all the cases the requirement is to migrate the content without modifying the date and author details ( the other case is quite easy that moving the content from one site to another without being worried about the date/author details). I discovered that there are a few ways to accomplish this task.  You can migrate a single list from Project Server 2007 to Project Server 2010 using one of the two methods:
  1. Migrate a single list from Project Server 2007 to 2010 using the detach PWA Content database method
  2. Migrate a single list from Project Server 2007 to 20110 using PowerShell
The limitation with the first option is that if there is any custom branding applied to your source PWA 2007 site, the migration will bring that branding to your target PWA 2010 site as well. Which in my case was not requried, so we will discuss the second option in detail. I would also like to introduce this very handy tool i have found after bit of a googling over the net, it would ease your life alot. The tool is  developed by Chris O’Brien to move the content from one farm to another, its bascially using the stsadm import/export commands to do the job, but its little tricky when its come to moving the data from Project Server 2007 to Project Server 2010. if its the same version of Project server, it would work straight away.
The tool provides a wizard-like approach to deploying content between PWA sites. The selected content is exported using the Content Migration API (PRIME), giving a .cmp file (Content Migration Package) which can be copied to other servers. the tool must be installed locally on the server which hosts the site, so you have to install it on both your source and target servers respectively to import and export the job.

EXPORT CONTENT
1. Run the application as an administrator, choose Export and enter the URL of your PWA site.






2. Choose from the Export content tree view, right click on the selected content and click Export. You can also use Include Descendant option on the container objects such as Webs. I would prefer to select one list at a time, import it as .cmp file and then re-run the wizard to create a .cmp file of another list. The reason is that stsadm Import command breaks the .cmp file in more than one file if the size of the content exceeds 25MB. Even if the single selected list exceeds the maximum size limit (25MB) you have to opt for the non-compressed option (that we will discuss in next stage), because creating and importing multiple files gave me a hard time.

 
3. After selecting the list, click on Next to move to the next scree where we have to configure the settings before creating a export file. Do the following settings and click next.
  • Export method: Export all
  • Include Version: All
  • include Security: All
  • disable compression: select if your data is more than 25MB.



4. The next will create a *.cmp file for you. Re-run the wizard again if there are other date need to be exported.

IMPORT CONTENT


5. Once you will have all your *.cmp files with you, copy them on the target server. Prior to running the wizard to import the files you have to verify the version in SYSTEMDATA.XML file which resides within the *.cmp file else it will fail to import the content and the error dialog box with the following error will appear:

The import process failed with following error:
FatalError: The version of the package 12.0.10.0 is different from the current version this program supports, 14.0.0.0.
Debug:    at Microsoft.SharePoint.Deployment.SPDeploymentSchemaVersion.Validate(SPSite site)
at Microsoft.SharePoint.Deployment.SPImport.Run()
Progress: Import did not complete.


The import process save the current version of Sharepoint server during the process, and when you try to export the file into the different Sharepoint version, the process fails.  follow the steps to update the version number and then run export the file, repeat the same steps for all the *.cmp files.

5a. Change this CMP file to CAB, extract the file so that you can access SystemData.xml in the CAB file, and modify the version information there. Open the SystemData.xml file in a text editor, and change Version=”12.0.0.0″ to Version=”14.0.0.0″, and Build=”12.0.0.6514″ to Version=”14.0.4762.1000″.







5b. You will have to create a new CAB file again after making the changes above. go to the link: (http://www.larshederer.homepage.t-online.de/cabpack.htm) and download the cabpck14.zip. Unzip the file and run the cabpack.exe, browse and select the folder where you have your modified files are and run the cabpack. It will create a new *.CAB file for you which you can rename to *.CMP to run import.








6. Run the wizard, select the Import option and enter the URL of your PWA 2010 website in both the boxes.
(if you have created a non-compressed export data of your list, jump to the point 9 directly)







7. On the next screen, browse the *.cmp file, do the following settings and click Next:
  • Retain object IDs: Keep it un-checked if you want your list to be create and configured within the PWA site.
  • Include Security: All (if you dont want to modify the date/author details of the items)
  • Version Options: Append
  • User Info: Import all



8. The import process will execute in the next step and will open a log file for you at the end of the process. If it will be finish successfully without any errors, you can simply go to your PWA 2010 site refresh the page and will witness the changes.







9. In a case of uncompressed export, you can have a folder of files consisit of *.dat and the other configuration *.xml files.

Follow the same steps 5a and 5b to modify the version and create a *.CAB file. And then run as administrator the sharpeoint 2010 Management Shell to import the content. Run this instruction:

import -spweb -identity <PWA site URL> -path <*.CMP file path> -IncludeUserSecurity







In summary, if you have a need to just import a PWA list from an existing Sharepoint 2007 farm to a SharePoint 2010 farm, there are several ways to accomplish this task. Which method you should use will depend on the tools that you have available, and your familiarity with each of them.

Please leave your comments and queries and dont forget to rate the article,  thanks.

1 comments:

Hi Khurram,

I migratea a few sites from PS2007 to PS2010 using the instructions above. However, the issue is when I try to view/edit the properties of any document/list item, I get a FileNotFound exceptions.

I cannot use Bulk Site Update option as it does not show PS2007 web app address in the dropdown.

Please help.


Thanks,
Asim

Post a Comment

Spammers, don't waste your time as the comments will only appear after moderation.

Share