Do I have to upgrade through every version or can I jump versions?

I am on concrete 8.3.2 running PHP 7.2.34. I would like to upgrade to 8.5.9.

  1. Do I have to upgrade through all the versions in between or can I jump versions? Is there any documentation explaining what version I can jump?

  2. I have read the documentation about the php requirements for the various versions. Am I correct in saying that I should upgrade to the proper PHP version – say 7.4 before I do the upgrade? (I.e. not after the upgrade.)

  3. Does the upgrade automatically change the database character set from utf to utf8mb4 or does this need to be done manually when upgrading through one of the versions? (Which one??? Not seeing any mention of this in the release notes.) Also, I see that there are several people who reported foreign key problems during the change in the character set. Is this the exception or was this a version specific problem. I see no mention of it in any of the bug listings on the upgrades.

Thanks!

1 Like

Upgrade straight to 8.5.14. Skip everything in between. Backup first (just in case).

Run the upgrade with your current php version. Ideally use the CLI as it won’t time out.

The upgrade will try and change the db character set and that can lead to chicken and egg issues with express and oauth. Sometimes it is necessary to edit and import a sql dump of the database to get the character set updated correctly.

2 Likes

Thanks so much for the information. Very helpful. I will do this on a development server (with backups) before I touch the production server. You just saved me a ton of time.

1 Like

I’ve just been doing a bunch of upgrades from older versions to the latest 5.8 version. Most went quite well. I did run into a few issues with database collation as mentioned. I did also have to make sure the character_set and collation were also correct in /application/config/database.php there was also one other weird issue where images that had been added using the image block would not display if ‘Constrain Image Size’ had been checked. I noticed this on a few sites I upgraded so something to look out for

Thanks for the information. Did you check and change the database.php before or after the upgrade? Do you remember what dot version of the upgrades had the character_set and collation issues?

I changed the database.php after the upgrade and after changing the database collation. Both sites I had the collation issue on I upgraded straight from 8.5.1 to 8.5.14 but these same sites also had previous upgrades from 8.4.4 to 8.5.1 so it’s possible the collation was from the earlier 8.4.4 version. I got this error

Exception Occurred: /public_html/updates/concrete-cms-8.5.14/concrete/src/Database/CharacterSetCollation/Resolver.php:178 The collation “utf8_unicode_ci” is not supported.

I just exported the database, updated the collation with a replace in the sql file (I changed mine to utf8mb4_unicode_ci) and imported it again. That’s when I got the new error about the database.

Exception Occurred: /public_html/updates/concrete-cms-8.5.14/concrete/src/Database/CharacterSetCollation/Resolver.php:183 The collation “utf8mb4_unicode_ci” is associated to the character set “” and not to the character set “utf8”.

This is when I updated the database.php file to match the new collation. Some of these issues may have been due to moving to a server with a newer mysql version but I only had these issues on a handful of older sites jumping a lot of versions when upgrading

1 Like

Thank you . Really appreciate the information regarding the errors.