Check out my new blog at https://shibumiware.blogspot.com

Wednesday, July 25, 2012

Migration Toolkit for Project Server

One of my side projects is a project migration toolkit for Project Server.   Have you ever wanted to move a project from one Project Server instance to another, including resources, custom fields, and lookup tables?  Yeah, me too!

Requirements

  • Migrate a project from one Project Server instance to another, including:
    • Project custom field values
    • Tasks
    • Task custom field values
    • Resources
    • Resource custom field values
    • Optionally:
      • Custom field definitions
      • Lookup table definitions
  • Allow for Project Server to Project Server migration
  • Allow for MPP export to Project Server import

The driving reason behind my working up this toolkit was testing.   Our newest product, EVMS forProject, has a Project Server synchronization engine that syncs Project Server data with our system.  I needed a way to get projects from one environment (test, dev, production, etc.) to another for testing and debugging purposes.

Walk Through

The toolkit user experience begins with a switchboard:

image

The options are to:

  • Migrate Project – This option allows the user to either choose an MPP that has been exported to MPP by using the toolkit or to choose a source and target Project Server instance.  The source project is then migrated to the target Project Server instance
  • Migrate Server Settings – Coming Soon
  • Migrate System – Coming soon
  • Create Custom Fields Description File – This option allows the user to create a file that contains the custom field and lookup table definitions for the source Project Server instance.  This can be used in conjunction with the final option to migrate custom field and lookup table definitions to the target Project Server instance.
  • Export MPP for Migration – In the case where the user doesn’t have access to the source Project Server instance at the time that the project is to be migrated to the target Project Server instance, this option provides an MPP export mechanism.  As we shall see later, it even provides a mechanism by which a self-extracting executable is created that when run against the target Project Server instance essentially “installs” the project into the new environment—including custom field and lookup table definitions.

Lets walk through some use cases

Use Case: Project Server-To-Project Server Migration

Note: I happen to be using Project Server 2007 in these demos but the tool is designed for 2007 and 2010.

Suppose you have a project in Project Server A and you want to create a copy of it in Project Server B.  Using the toolkit, this is extremely easy.  Choosing the first option described above displays a migration details form:

image

Clicking on the ellipsis in the “Select Project Server” in the Source group control displays a Project Server login dialog:

image

Once logged in, the project selector edit button is enabled.  When clicked, the source project can be selected:

image

And the target Project Server instance and project name are specified:

image

Notice that I have “Create Missing Custom Fields” and “Create and Populate Missing Lookup Tables” checked.  Here is the source Project Server custom field definitions:

image

Here is the target Project Server custom field definitions:

image

Also, I have resource migration selected as well. Here is the source resource pool:

image

Here is the target resource pool:

image

Click Migrate and we are off and running… A short while later, we go to the target system and see the migrated project, including custom field definitions, lookup table definitions, resources, and the project itself!

Use Case: Export/Import MPP

Suppose you have a project you want to send to a colleague that is working in a different instance of Project Server.  The toolkit provides two ways to do this.  First, you can export and MPP (and supporting files, which includes custom field information) to a directory—which then you could zip up and send to your colleague.  Or you can use the toolkit to create a self-extracting “project setup” file when run against the target Project Serer instance will “install” the project, including custom field information and resources, into the server.

image

image

After running the migration tool, an executable is created (using my sfx technology—see the sfx section in this post):

image

Let’s run it…First thing is the files are extracted, then I am prompted to login to the target Project Server instance:

image

Provide a name for the project:

image

image

And wham, the project is imported with custom fields, lookups, and resources

Back to work.  This was supposed to be my lunch break!

7 comments :

Patrick Timmerman said...

Hi Can i Download the Migration Toolkit somewhere

Patrick Timmerman said...

Can i Download the Migratation Toolkit Somewhere

Patrick Timmerman said...

Hi,

Can I download it somewhere ?

Colby Africa said...

Unfortunately we haven't productized it yet!

Kashif Saeed said...

Hi, can I download and test for migration.

Regards
Kashif

Kashif Saeed said...

I am looking for tool to migrate lookup table and custom fields from Project Server 2007 to 2010
Regards
Kashif

Colby Africa said...

I just haven't had time to do anything with this.... I may pick this up again when I have time but right now I am focused on internal product development and some experiments with Azure.

Disclaimer

Content on this site is provided "AS IS" with no warranties and confers no rights. Additionally, all content on this site is my own personal opinion and does not represent my employer's view in any way.