My Current environment is:
Concrete 8.5.1
PHP 7.4.33
MYSQL 5.7
I want to move to:
Concrete 9.2.0
PHP 8.1
MYSQL 8.0 (or possibly MariaDB)
I tried an update to 8.5.5 but this broke with a table it couldn’t find which I supose was created in a version between 8.5 and 8.5.1.
There are a lot of versions between 8.5.5 and 9.2. Can anyone give me a roadmap which will allow me to skip versions without hitting any problems.
Thanks
Do you have a database backup, just in case?
Turn off all caches. Put the database entities in development mode.
There were some migrations out of sequence in 8.5.X, they should all be applied if you go straight from 8.5.5 to 8.5.12. (I think you need to be at 8.5.12 before v9), then straight to v9.1.3.
Don’t worry I’ve got a full backup and am applying changes to a copy. I had all the caches turned off and have now turned on development entities (what does this do?)
I tried to do an upgrade to 8.5.2 but still got this:
An exception occurred while executing ‘truncate table OAuth2Scope’: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘dbs11295425.OAuth2Scope’ doesn’t exist.
Looking at the database I found that the following ‘Oauth’ tables are not CamelCased:
oauth2accesstoken
oauth2authcode
oauth2client
oauth2refreshtoken
oauth2scope
whilst OauthUserMap is.
By just renaming the tables I can get rid of the upgrade problem. Should I rename them all? And would this be to:-
Oauth2AccessToken
Oauth2AuthcCde
Oauth2Client
Oauth2RefreshToken
Oauth2Scope
That issue is the kind of thing that arises from moving the site from a not case sensitive file system (windows) to a case sensitive file system (Linux) some time way back. Then if you are not using oAuth, the bug never manifested.
You could look at
I don’t know if it covers absolutely everything.
The names you suggest look about right. One of my sites in phpMyAdmin lists:
OAuth2AccessToken
OAuth2AuthCode
OAuth2Client
OAuth2RefreshToken
OAuth2Scope
OauthUserMap
Thanks for the link and your comments.,
Yes, when I started with Concrete I was using Windows and had endless problems. I’ve been using Linux for the last year or so and thought I’d got over these problems but then I haven’t been carrying out any updates hence the issues I have now.
The current problems seem to be just with the table names not the columns and all the other tables seem to be in the correct format so I’ll make the changes and see what it throws up.
Most of the core DB table definitions can be found at concrete/config/db.xml
.
Thanks for this. It’s a useful set of XML which I used to check that my changes are correct. hopefully there are no more Windows legacy problems to come out and bite me.
I think you need to be at 8.5.12 before v9
This was particularly helpful. My site would implode if I went from a lesser 8.5.x version straight to 9.