This blog post will detail the PowerShell commands required to carry out an environment rollover / migration using Windows PowerShell where possible. The steps below use the 2 database approach to rollover over the Production environment to the Test / Development environment.
As a prerequisite I would recommend taking full backups of the Test / Dev farm to enable the environment to be rolled back if required. Use your usual farm backup procedures.
Test / Dev environment Prep
Firstly connect to the Test / Dev Application server and launch the SharePoint 2013 Management shell.
Type the following:
Dismount-SPProjectWebInstance -SiteCollection <URL of Test / Dev PWA site that you want to refresh with the Production data and config>
Press Enter and then type Y and press Enter to remove the PWA instance
You can check in Central admin in the Project Server Service Application to check that the PWA site has been removed:
Using the SharePoint 2013 Management Shell remove the existing content database from the web application that hosted the PWA site collection that was removed in the previous step.
Type the following:
Dismount-SPContentDatabase “<Database name here>”
Press Enter and type Y to confirm then press Enter
Test / Dev environment SQL Prep
Take a backup of the 2 databases from the Production environment and copy these over to the Test / Dev SQL server and restore the databases. The databases required are:
Content database that contains the PWA site and Project Sites
Project Web App database
Make a note of the database names used when these databases are restored as they will be required later.
Test / Dev environment configuration
Using the SharePoint Management Shell, attach the restored content database to the web application that will host the PWA site collection.
Type the following:
Mount-SPContentDatabase “<content database name restored in previous step>” -DatabaseServer “<Test / DEV SQL Server>” –WebApplication <web application URL>
Press Enter:
Using the SharePoint 2013 Management Shell mount the restored Project Web App database to the web application.
Type the following command:
Mount-SPProjectDatabase -Name “Name of the restored Project Web App database to mount” –WebApplication “Web Application ULR that the Project Web App database will mount to” –DatabaseServer “Test / Dev SQL Server where the database was restored”
Press Enter:
Now using the SharePoint 2013 Management Shell provision the PWA site collection in the web application where the database was just attached to and using the Project Web App database that was restored previously. Please note, use the same PWA path name used in Production. For example if the instance is called /PWA in Production, use /PWA in the command below on the Test / Dev environment.
Type the following command:
Mount-SPProjectWebInstance –DatabaseName “Name of the restored Project Web App database to mount” –SiteCollection “web application URL + PWA path” –DatabaseServer “Test / Dev SQL Server where the database was restored”
Press Enter:
You can check the provisioning status of the PWA site using PowerShell or in Central admin in the Project Server Service Application to check that the PWA site has been created:
Type the following:
Get-SPProjectWebInstance –URL <PWA URL> | Select ProvisioningStatus
Or in Central Admin:
Post Provisioning
The Project Sites will need to be relinked using the “Bulk Update Connected SharePoint Sites” functionality in Central Admin on the newly provisioned Test / Dev PWA site.
The Project Server Cube settings will need to be updated – update the SQL AS server / cube name.
Any Excel services reports will need to be updated to use the ODC files from the Test / Dev environment as they will currently point to the Production ODC files. This is done by opening the Excel reports in Excel, changing the ODC file then saving the file back to the library.