Migrating a blog from Orchard 0.5 to 0.9
My personal blog still runs on Orchard 0.5, because the theme that I used to build it is not yet available for more recent versions, but it is still very important for me to know that I can migrate all my content and comments to a new version at any time.
Fortunately, Nick Mayne has been consistently shipping a BlogML module a few days after each of the Orchard versions shipped.
Because the module gallery for each version is behind a different URL and is kept alive even after a new one shipped, it is very easy to install the module for both versions.
Step 0: Setting up the migration environment
In order to do the migration, I made a local copy of the production site on my laptop (data included: I'm using SQL CE) and I also created a new local site with a fresh install of Orchard 0.9.
Step 1: Enable the gallery feature on both versions
From the admin UI, go to Features and locate the Gallery feature under "Packaging". Enable it.
You may now click on "Browse Gallery" on the 0.5 instance and "Modules" under "Gallery" for 0.9:
Step 2: Install the BlogML module on both versions
From the gallery page, locate the BlogML module and install it. Do it on both versions.
Then go to Features and enable BlogML under "Content Publishing". Do it on both versions.
Step 3: Export from the 0.5 version
Click on "Manage Blog" then on "Export using BlogML" from the 0.5 version.
The module then informs you of the path of the saved file:
Step 4: Import into the 0.9 version
From the 0.9 version, click "Import under "Blogs". Click the button to browse to the file that you just saved from 0.5. Then click "Upload file and Import"
Step 5: Copy the 0.5 media folder into 0.9
Copy the contents of the 0.5 version's media folder into the media folder of the 0.9 version. Once that is done, you can delete the "Default/Blog Exports" subfolder.
Step 6: Configure the target blog
Click "Manage Blog", then "Blog Properties" and restore any properties you had on the source blog. For me, it was the title and URL as well as to set the blog as the home page and show it on the main menu:
Step 7: Republish the new site to the production server
Once this is done and everything works locally, you are ready to publish to the production site. I use FTP.
Note: this should work just as well for any couple of versions for which the BlogML module exists, and not just for 0.5 and 0.9.