Updating Umbraco CMS
30 May 2013
In this article I will show you the process of updating Umbraco CMS, in this case from 6.0.5 to 6.1.0
Here is what official guide says we should do:
1. Copy your current files and database to a new website, never upgrade a live site, you never know if something breaks, so do a full copy and upgrade that 2. Get the latest version 3. Check for package compatibility 4. Examine your configuration files, the web.config, the files in /config and some other core umbraco files, look for any changes, preferably with a diff tool like http://winmerge.org/) 5. Copy over all binaries and umbraco system files 6. Transfer your config changes to the config files in the upgrade 7. Open the root of your website, the installer should now launch automatically and perform the database upgrade.
It's pretty much correct. Here is how I do the update.
First of all, I am using version control system. My current preference is Git. The site itself is within version control. Naive solution would be to copy over everything from new 6.1.0 archive to current 6.0.5 installation, and then revert parasite changes with git. This is what I will do, but for some files like web.config it takes too much effort. Actually from version to version, default Umbraco configs are not changing that much. It's easier to monitor what actually changed, and apply such changes to the installation manually. To achieve that, I have local git repository with clean Umbraco packages. At the moment it's tip containing default Umbraco 6.0.5:
Local git repository with default Umbraco 6.0.5
SmartGit GUI client
Then I delete it's current content, and replace it with new 6.1.0:
Replaced old sources of 6.0.5 with new 6.1.0
It's easy to see all changes in SmartGit GUI
Now it's clear for me that to update web.config file of my installation, for example, I should just change few lines.
After I have done this preparations and backed up my database, I can just overwrite my current 6.0.5 files with new 6.1.0 and revert the changes I don't need. In my case it's some tinymce js, some aspx files and main web.config. I also temporary disable my RequestReduce as it have caused troubles during upgrade before. Then I commit this changes and open the site. It automatically redirects to /install:
Umbraco updating interface
After I follow this wizard, all I have to do is remove /install folder (can be done via built-in Developer/uGoLive Checklist interface) and commit changes again. My Umbraco installation is now fresh new 6.1.0!
About Umbraco 6.1.0
About window interface after updating
- Version control current installation.
- Overwrite all the files with new ones from release archive.
- Track Umbraco changes to help updating "difficult" files like web.config
- Use VCS GUI to effortlessly preserve changes manually made on your Umbraco installation.
- Lauch Umbraco, it automatically updates.
- Remove /install folder
There clearly may be a better solution and I encourage you to share your updating workflow in comments below.
Actually I think it should somehow be possible to just take the diff from "pure changes" repository and apply it directly on my Umbraco installation. If you know how it can be done, please share the knowledge as well!