Hi Again
its Friday end of day so i will make it as short and fast as possible
If you have been working with Project Server for the last couple of years , you know that it was relatively easy to move Project Server on premise instance between environments, data base migration was specifically useful when moving from development or test environment to production environment.
that didn't come without limitations especially when the migration required is a partial migration for some newly developed configuration, again there was a solution
The Microsoft Project Server 2010 Server Settings Backup/Restore tool is part of the Microsoft Project Server 2010 Resource Kit (PRK).
The tool enabled us to backup the configurations from one environment to another, it even allowed to merge or replace the settings.
That bring us to Project Online, as we all know database migration is simply not an option, some looking around will lead us to one conclusion there is some 3rd party tools , the tools available do provide all the required functionality to migrate configurations and data, and they are supported but there is one tiny issue they are not free :)
so i needed a quick solution to migrate some basic configurations and settings between Project online environments the configurations were some custom fields (with lookup tables), security configurations , Quick launch and views i started the manual process and then i got an idea why not to use the same tools for Project 2010 for project online, technically it is possible (with limitations)
so i downloaded and installed Project Server Playbooks, if you just simply start it and tried to login using windows authentication or even Form Authentication you will get the error below
The error basicaly is that the tool do not support authentication to office 365, so to come around that issue i remembered a nice trick that i came across before when i was trying to connect my LINQPad to Project Server Odata, the solution basically use Fidler to take over the authentication cookie and reuse it again
so first step go and download fidler, then follow the steps from this
link you will be interested in this section
"Our “solution”: we will “cache” the authentication cookies from an Internet Explorer session, then inject the same cookies to the LINQPad sessions.
Start
Fiddler, choose
Roles /
Customize Rules…, and edit the
CustomRules.js file (don’t forget to create a backup!).
Before the
OnBeforeRequest function add this code:
static var authCookies = "";
static var o365Site = "yourO365Site.sharepoint.com"; // modify this value!
At the beginning of the
OnBeforeRequest function add this code:
if (oSession.HostnameIs(o365Site)) {
var cookie = oSession.oRequest["Cookie"];
if ((cookie == "") && (authCookies != "")) {
//oSession.oRequest["Accept"] = "text/html, application/xhtml+xml, */*";
oSession.oRequest["Cookie"] = authCookies;
}
}
At the beginning of the
OnBeforeResponse function add this code:
if (oSession.HostnameIs(o365Site)) {
var cookie = oSession.oRequest["Cookie"];
if (cookie != "") {
authCookies = cookie;
}
}
Done! Save the changes of
CustomRules.js. Then (having
Fiddler running and capturing network traffic!) start
IE, navigate to your
O365 site, and authenticate yourself when requested. Cookies are cached in
Fiddler at this point."
now once you have the configurations done correctly run playbooks , feed in your project on-line URL and hit ok , in a minute or two you will get the lovely view below
enjoy backing up and restoring, i did notice some limitations around some configurations backup but still the tool can do about 80% of the job and its free :)
- It goes without saying but i will say it over and over and over , this is not a supported method by Microsoft , i DO NOT recommend using it on any production environment
- I do recommend the official recommended methods by Microsoft
- another warning , when you take a backup make sure that the XML was downloaded successful with no errors or warnings before you attempt to restore it back
Have a good day
Malek