One of our customer using Episerver 7 minor versions and we were upgrading to latest maximum release of version 7 as below.
Below are the steps we followed for successful migration that might be helpful for other developers to save time as you might encounter many strength errors and it might be difficult to troubleshoot.
Upgrade should be including Episerver commerce frontend with CMS and commerce manager project too.
Step 1 Take backup
First, take backup of all databases frontend and commerce manger and code, as configuration and database schema will be going to change during upgrade process. This will allow to restore old version to restart clean migration again.
Step 2 First upgrade Episerver.Commerce packages
Update nuget packages to version 7.12.0 for Episerver.Commerce, Episerver.Commerce.Core, Episerver.Commerce.UI frontend project.
Follow release note after updating nuget packages. You can find it at location \packages\EPiServer.Commerce.UI.7.12.0
Step 3 Upgrade Episerver CMS packages
Upgrade to Episerver.CMS.Core 7.19.2 and Episerver.CMS.UI to 7.19.5 for frontend project.
Follow release note after updating nuget packages. You can find it at location \packages\EPiServer.CMS.UI.7.19.5
Step 4 Build solution and run
Build the solution and be sure there is no any build error or compilation error and run the front end. Note: Do not worry about commerce manager at the moment and just try to up and running commerce frontend website.
You may encounter runtime errors and might not able login in to Episerver CMS as well. To fix those, be sure you followed below steps:
- Look at appdata folder, you can find path of appdata folder path in episerver.framework.config file and be sure you followed above CMS and Commrece upgrade release not carefully.
- Verify web.config assembly binding and versions to be sure it pointing to latest upgraded version.
- Verify Episerver.UI assembly binding in web.config is pointing to recent version 7.19.5
- Verify bin folder and be sure all Episerver assembly having recent upgraded versions
- Verify frontend project references, and be sure all Episerver dll references are pointing to new upgraded nuget pcakges version folder.
Step 5 Configuration updates and transformation
To apply right assembly binding and transformation as per new upgrade follow below steps.
- Open Package Manager Console.
- Make sure "Default project" points to the website.
- Write Update-EPiConfig in the console and press Enter.
- All configuration transforms are now applied.
Step 6 Clean and Rebuild
Clean solution and rebuild again and be sure there is no any compilation error. Delete asp.net temporary files and run the frontend website again.
If you see database version upgrade error, means your code is upgraded successfully and you are just few steps away to complete the migration.
Step 7 Update Episerver database schema
Open nuget package manager console and select frontend web project in top dropdown.
Run command update-epidatabase
Once database update scripts executed, try to run the website again and you might redirected to episerver login page or /episerver/Commerce/Migrate page which update your commerce entities items as final step.
After executing migration step from the page, you will be good to see your home page.
Step 8 Upgrading Commerce Manager
Be sure all above packages are also updated or installed as per same version of frontend project.
No need to run any database migration for commerce manager project.
You might encounter many errors in App_GlobalResources folder designer.cs files under asset, catalogue, content etc. folder while build commerce manager project.
Just remove the all content from designer.cs file and save it, do not worry about this at the moment and be sure you are able to build and compile commerce manager project.
Step 9 Verify website, CMS and commerce manager access
Be sure you are able to see front end site, able to login into Episever CMS. You should also able to access catalogue and commerce manager sections in Episerver backend interface with all your existing data.
Step 10 Plan production deployment
You can deploy you project and commerce manager files and assemblies as per your normal deployment approach either manual or Team City or Octoups or VSTS.
Note: Follow the release note again for Episerver CMS and Commerce same way we did earlier in dev environment and be sure files and folders are removed from appdata/modules and modulebin folder from website.
Note: You can also copy appdata/modules folder from your local dev environment to production environment and also replace modules and modulebin folder too.
For database schema upgrade, follow below steps as you are unable run Update-EPiDatabase command on production server
- Open Package Manager Console, in dev environment
- Make sure "Default project" points to the website.
- Write Export-EPiUpdates and press Enter.
- Copy the exported files to the production machine (the path to the exported files should be obvious from the log messages).
- On the production machine: Open a command prompt as Administrators and execute update.bat c:\inetpub\mysite. Path should be your website config file root folder which mapped to IIS.
After execution of batch file run the website and you will see migration page (/episerver/Commerce/Migrate) like what you seen earlier in development environment.
Verify your CMS and commerce manager access and hopefully you should be good now!