Upgrading from 8.5.2 to 8.5.4

Permalink
I just performed a "composer update", however, it broke the site due to SQL foreign key issues. I expect I should have done it through the dashboard, no? So, I reversed the composer update, and go to environment information first to confirm I am at 8.5.2, and then to update concrete5, but it says no updates are available yethttps://www.concrete5.org/download... lists 8.5.4.

How should I do this? Thanks!

 
ong replied on at Permalink Reply
ong
Hi,

similar probleme here. I tried to update from 8.5.2 to 8.5.4 by replacing the concrete directory and the two files on the root.
Everything seems to work find, but
a) I can not disable maintenance mode anymore
b) c5 keeps getting stuck when doing my automated jobs.

I get some strange error with this version numbers showing:
Concrete5
Version   8.5.4
Installed Version   8.5.2
Concrete Configuration
concrete.version   8.5.4
concrete.version_installed   8.5.2
concrete.version_db   20200609145307
concrete.installed   true
...


Error is:
Doctrine \ DBAL \ DBALException
An exception occurred while executing 'INSERT INTO Logs (channel, level, message, time, uID) VALUES (:channel, :level, :message, :time, :uID)' with params ["operations", 250, "Clearing cache with CacheClearer::flush().", "1591970404", "1"]: Error while sending QUERY packet. PID=81608
Previous exceptions
Error while sending QUERY packet. PID=81608 (2)


Any ideas?
ong replied on at Permalink Reply
ong
Hi,

site at least shows, when i am logged in as admin again. Still only maintenance mode for others.
Trying to run an automated job (Index Search Engine - Updates), I now get this error:
An exception occurred while executing 'SELECT t0.exEntryID AS exEntryID_1, t0.exEntryDisplayOrder AS exEntryDisplayOrder_2, t0.exEntryDateCreated AS exEntryDateCreated_3, t0.exEntryDateModified AS exEntryDateModified_4, t0.publicIdentifier AS publicIdentifier_5, t0.uID AS uID_6, t0.exEntryEntityID AS exEntryEntityID_7 FROM ExpressEntityEntries t0 WHERE t0.exEntryID = ? LIMIT 1' with params ["1"]: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.publicIdentifier' in 'field list'


Is there actually a column in the table missing?

Olaf
ConcreteOwl replied on at Permalink Reply 1 Attachment
ConcreteOwl
There is indeed, take a look at this screenshot (attached)
ong replied on at Permalink Reply
ong
Hi,

thank you for checking.
Could an update error be the reason?

If so - is there anything I can do to force a re-update (or create the missing columns by hand)?

Olaf
ConcreteOwl replied on at Permalink Reply
ConcreteOwl
Try this,
download the 8.5.4 zip file and extract it into your root/updates folder.
Next go to system and settings > update concrete5 and see if you can run the update routine.
ong replied on at Permalink Reply
ong
Hi,

thank you for your help. Unfortunately I can not even log in anymore (see error below). I am downgrading to the backup that I did right before the update.
Hopefully, I can update - whatever way - afterwards.

An exception occurred while executing 'SELECT t0.iaccID AS iaccID_1, t0.iaccHandle AS iaccHandle_2, t0.iaccName AS iaccName_3, t0.iaccEnabled AS iaccEnabled_4, t0.iaccMaxEvents AS iaccMaxEvents_5, t0.iaccTimeWindow AS iaccTimeWindow_6, t0.iaccBanDuration AS iaccBanDuration_7, t0.iaccSiteSpecific AS iaccSiteSpecific_8, t0.iaccLogChannel AS iaccLogChannel_9, t0.iaccPackage AS iaccPackage_10 FROM IpAccessControlCategories t0 WHERE t0.iaccHandle = ? LIMIT 1' with params ["failed_login"]:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'dbName.IpAccessControlCategories' doesn't exist


Olaf
ong replied on at Permalink Reply
ong
Hi,

one problem I think I found. My provider moved servers to another town. In this process they updated to a newer mysql version. Unfortunately they did not do that 100% correct: Some mysql permissions seem to have changed.
I believe, this did not allow me to update.

I did create a new database and threw the backup into that. In the past this has solved the problem with the missing mysql permissions - as for new databases they seem to be set the correct way.

Unfortunately it did not help this time. I tried to replace the concrete directory again - and it failed again.
I will try in a few days again - currently I can not afford to loose time by failing updates.

I will also try your suggestion when upgrading.

Thank you very much for your help.
Olaf
Myq replied on at Permalink Reply
Myq
There is a delay between the latest available version and the recommendation to upgrade showing up in the dashboard. Part of the delay is to ensure there aren't any unknown bugs that show up. You can upgrade via composer if you want the absolute latest version.

What specific error did you see?
NotionCommotion replied on at Permalink Reply
Hi Myq, This is the error. Maybe after running "composer update", I need to run a C5 executable from the command line?

Doctrine\DBAL\Exception\DriverException thrown with message "An exception occurred while executing 'ALTER TABLE ExpressFormFieldSetPublicIdentifierControls ADD CONSTRAINT FK_67180C04BF396750 FOREIGN KEY (id) REFERENCES ExpressFormFieldSetControls (id) ON DELETE CASCADE':
SQLSTATE[HY000]: General error: 1005 Can't create table `ats_portal`.`ExpressFormFieldSetPublicIdentifierControls` (errno: 150 "Foreign key constraint is incorrectly formed")"
Stacktrace:
#22 Doctrine\DBAL\Exception\DriverException in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:106
#21 Doctrine\DBAL\Driver\AbstractMySQLDriver:convertException in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:169
#20 Doctrine\DBAL\DBALException:wrapException in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:149
#19 Doctrine\DBAL\DBALException:driverExceptionDuringQuery in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:914
#18 Doctrine\DBAL\Driver\PDOException in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:83
#17 PDOException in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:78
#16 PDO:query in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:78
#15 Doctrine\DBAL\Driver\PDOConnection:query in /var/www/ats_portal/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:911
#14 Doctrine\DBAL\Connection:executeQuery in /var/www/ats_portal/vendor/doctrine/orm/lib/Doctrine/ORM/Tools/SchemaTool.php:879
#13 Doctrine\ORM\Tools\SchemaTool:updateSchema in /var/www/ats_portal/public/concrete/src/Updater/Migrations/AbstractMigration.php:125
#12 Concrete\Core\Updater\Migrations\AbstractMigration:refreshEntities in /var/www/ats_portal/public/concrete/src/Updater/Migrations/Migrations/Version20190509205043.php:22
#11 Concrete\Core\Updater\Migrations\Migrations\Version20190509205043:upgradeDatabase in /var/www/ats_portal/public/concrete/src/Updater/Migrations/AbstractMigration.php:84
Myq replied on at Permalink Reply
Myq
It looks like the public identifier express entry property was newly added in 8.5.3 (https://github.com/concrete5/concrete5/commit/dc08d1685c3bad228c310a148f810c7c61a6d810), so this is likely a core bug you are experiencing.

Could you post this information as a new issue in GitHub here:https://github.com/concrete5/concrete5/issues/new...
dessisan replied on at Permalink Reply
Failing to upgrade from 8.5.2 I opened a forum thread, with no success so far:
https://www.concrete5.org/community/forums/installation/update-from-...

Studying again this forum thread in detail I realized suddenly, that I get exactly the same error message as NotionCommotion posted here. So I wonder, if his problem has been solved meanwhile? If yes, what helped doing the trick?