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.

Hi- The upgrade to 8.5.14 went smoothly on the development server. My next step is to upgrade to 8.5.9. Can I go straight to 8.5.9 or do I need to hit another intermediate upgrade first? I understand that I will need to change the PHP version to 7.4 after the upgrade. Any other issues to consider?
Thanks again for all your help.

From 8.5.14, go straight to 9.latest. Don’t mess about with intermediary versions.

8.5.14 will run under php7.3, so that is probably the best php version to run the update. Use the CLI command and replace the concrete directory (and as always, backup the database first, configure entities into development mode, set maintenance mode, clear and disable caches - I guess you are already familiar with that, so this is for those who come to the thread late and don’t read back all the way.)

Thank you. One quick question. I have a lot of custom blocks that I need to upgrade for version 9, along with working on a new theme. (My current them does not work on version 9.) What I would like to do is move my development server to version 9 but keep the production server on version 8.5.14 until all the other work is completed. If the world were a perfect place, I would also like to upgrade the php version on the production server to 7.4. The documentation makes me believe that version 8.5.14 will work with php 7.4. Is that correct or are there problems?
Your help is sincerely appreciated. Also, the reminders about good practices during upgrades are helpful for everyone.