Welcome to Shaun Luttin's public notebook. It contains rough, practical notes. The guiding idea is that, despite what marketing tells us, there are no experts at anything. Sharing our half-baked ideas helps everyone. We're all just muddling thru. Find out more about our work at bigfont.ca.

Update Orchard CMS v.1.7 to v.1.8

Tags: orchard-cms, asp.net-mvc, azure, web-matrix, visual-studio, upgrade

tl;dr

  1. Download the AppData/Sites, Media, Modules, and Themes/<any-in-use-themes> folders from the existing  v1.7 site.
  2. Download a new Orchard.Web.1.8 site. Delete its AppData and Media folders.
  3. Copy and paste content into the new site:
    1. The AppData/Sites and Media folders.
    2. All in-use themes from the Themes folder (ignoring built in themes).
  4. Package the existing Theme; import it into the new site.

Note: these instructions do NOT yet cover module migration. Basically, list all the modules & features that the existing site uses. Then make sure those are installed & enabled on the new site.

Scenario

I have an existing Orchard CMS hosted in a Windows Azure Website. I would like to upgrade to v1.8. Here are the steps. Note: Works on my machine!

Opinion

We should not deploy an Orchard CMS from source control. There are two reasons. First, doing so would overwrite the AppData, Media, Modules, and Themes folders on each push. We don’t want that. Those folders hold end-user data. Second, we don’t need source control for a deployment of Orchard. We aren’t modifying its source! We only modify the source to create themes and modules.

We should deploy Orchard with Visual Studio/WebMatrix/WebDeploy/FTP/Etc, and then we should regularly backup the site.

Tools

  • WebMatrix to download the existing site from Azure.
  • Visual Studio to publish the new site to Azure.
  • Command Prompt to package the existing theme.
  • Windows File Explorer to copy and paste the AppData and Media folders.

Steps

Download the current Orchard CMS assets from Azure.

With WebMatrix

WebMatrix is the alternative when FTP isn’t working.

  1. Login to Windows Azure Portal
  2. Open your site
  3. Click the WebMatrix button
  4. Choose “Edit local copy”
  5. Choose, “No, just download the files and database”
  6. The files will land in \Documents\My Web Sites\TheSiteName

With FTP

In the case that FTP is working, download just these folders:

  1. AppData
  2. Media
  3. Themes
  4. Modules

Usually, I store the download in my Downloads folder.

Gather the current site’s assets into one folder.

  1. Create a new folder to hold the assets. (This folder will act as a backup and migration package.)
  2. Copy and paste the following into that folder:
    1. App_Data
    2. Media
    3. Nuget package of the current theme.

Here is how to create the Nuget Package.

Orchard.exe
package create MyThemeName c:\temp

image

Create a new, local Orchard CMS v1.8.

There are many ways to obtain a local copy. Here are three:

  1. Create it from Windows Azure Gallery. Then download it with WebMatrix.
  2. Create it from WebMatrix (File > New > Site from Application Gallery).
  3. Download Orchard.Web.1.8.zip from orchard.codeplex. Unblock before unzipping.
  4. For the remaining steps, I work almost entirely out of the Downloads folder.

Note: We use Orchard.Web because we do not need to modify the source.

Copy, paste, and import the current into the new.

  • Copy the entire App_Data folder
  • Copy the entire Media folder
  • Run the new site locally (do NOT run Orchard setup), to import the theme and module packages.
    • I run the site via IISExpress through Visual Studio or WebMatrix
    • A better way might involve the Orchard command line. For now, I am get ACL problems that way.

Publish the new to the current Azure Website.

  • Do this with Visual Studio or WebMatrix.
  • More details coming soon.
  • Once that’s done, it’s okay to ZIP and/or delete the local copies of both the new and the old Orchard CMS.

Tested On

Bugs along the Way

  • Orchard.Web.1.8 doesn’t build in Visual Studio 2013.
  • package install Orchard.Theme.PackageName C:\temp\PackageName.nupkg doesn’t work.

Research Questions