BLOG

This article explains how to manually upgrade very old Concrete5 instances (5.3 or early 5.4) to 5.6.3.4 (the latest version of 5.6).

Screen-Shot-2017-03-30-at-12.59.18.png

How to manually upgrade Concrete5 from very old versions (5.3)

30th March 2017

I recently found myself with the daunting task of updating a very old website (Concrete5 5.3.3) to the most modern version it can be (5.6.3.4, as there is no automated upgrade-path from 5.6 to 5.7).

This seems like a straight-forward exercise, given each release of C5 offers an automated upgrade, it should just be a short sequence of hopping forward in major releases, right?

Wrong.

If you follow the CMS' instructions and upgrade to the versions it promotes you're going to have a bad time. Where the Concrete5 Release Archive lists a long list of published versions, the automated upgrade path would leapfrog many of these. It pushed me approximately from:

5.3.3
5.4.2.2
5.5.0
5.6.0
5.6.3.4

The version numbers may not be accurate, but that's vaguely what the automated path looked like. Numerous attempts of doing this resulted in fatal errors and an entirely broken website. The installs would fail, Dashboard pages wouldn't be installed, permissions would be implemented and even if you could coax the installer to claim that it had completed, the CMS would be unstable at best. It would ultimately end in a fatal error around v5.5.0 on the content importer, looking like there's an issue with it detecting Block Types.

So how do I upgrade from something very old to something modern?

Slowly and carefully. Manually.

If you're on 5.3.3 as this website was, you'll need to perform the updates manually and carefully. To do this you'll want to step through each and every minor release and upgrade each in turn. I suspect that it's the large leaps forward in versions that hurt you on the automated upgrade path, so doing it in baby steps is safer and worked for me when nothing else would.

The steps I followed are:

  1. Backup the database
  2. Backup the current /concrete directory
  3. Get the next minor release of the CMS downloaded somewhere separate (so if you're on 5.3.3 you'll want 5.3.3.1.
  4. Copy the /concrete directory from the 5.3.3.1 version over the top of the current working example
  5. Empty the cache (files/cache).
  6. Manually run the upgrade script (http://www.your-concrete5-site.com/index.php/tools/required/upgrade)

Because you're only stepping through minor releases (and this does take a long time) it works much, much better.

This did mean that to upgrade from 5.3.3 to 5.6.3.4 I had to perform 24 updates following the process identified above, whereas the automated process would have attempted to do this in about 4.

That's not to say that you won't encounter minor issues in doing this (in that I've got some bespoke single pages that aren't appearing in the CMS dashboard but were under 5.3.3, but that's easier to resolve).

Hope this helps, because I tried a few different things before approaching things this way and it turned a catastrophic exercise into something simple (but laborious).

THINK THERE'S SOMETHING WE CAN TALK ABOUT?

Whether you want to discuss a piece of business, get advice on how to approach something in Concrete5, want my top Project Zomboid tips or just simply want to say hello, then please do. I'm not as anti-social as my status as a developer would suggest.

GET IN TOUCH

CONTACT

Image
LOCATION
Milton Keynes (near London)
Image
PHONE
Disclosed for business only
Image
E-MAIL
steven.york [at] seopher.com
Image
AVAILABILITY
Contact me to find out