Fatal Error on update to 5.6.3.1

Permalink
Hi all,

One of our sites is running 5.5.2.1 and I'd like to update it to 5.6.3.1. I downloaded the update (through the admin area) and tried to run the update. It choked and gave me this error:

Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysqlt error: [1054: Unknown column 'logUserID' in 'field list'] in EXECUTE("insert into Logs (logType, logText, logIsInternal, logUserID) values ('exceptions', 'Exception Occurred: /home/gregoakes/gregoakesphotography.com/updates/concrete5.6.3.1_updater/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php:78 mysqlt error: [1054: Unknown column \'btDisplayOrder\' in \'field list\'] in EXECUTE("select btID, btName, btDescription, btHandle, pkgID, btActiveWhenAdded, btIsInternal, btCopyWhenPropagate, btIncludeAll, btDisplayOrder, btInterfaceWidth, btInterfaceHeight from BlockTypes where btHandle = \'hanalei_gallery_prettyphoto\'")\n (1054)\n\n#0 /home/gregoakes/gregoakesphotography.com/updates/concrete5.6.3.1_updater/concrete/libraries/3rdparty/adodb/adodb.inc.php(1074): adodb_throw(\'mysqlt\', \'EXECUTE\', 1054, \'Unknown column ...\', \'select btID, bt...\', false, Object(ADODB_mysqlt))\n#1 /home/gregoakes/gregoakesphotography.com/updates/conc in /home/gregoakes/gregoakesphotography.com/updates/concrete5.6.3.1_updater/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php on line 78


Any idea what happened? I was able to get the site back up by changing the config file back to 5.5.2.1. I'd like to update this install though.

CygnetMidwest
 
exchangecore replied on at Permalink Reply
exchangecore
That's odd, maybe try updating to 5.6.0 first manually then trying to auto updater? Instructions on how to go about this found athttp://www.concrete5.org/documentation/how-tos/developers/update-ve...
JohntheFish replied on at Permalink Reply
JohntheFish
There was a bug in the upgrade in one of the early 5.6.x updates, to do with on_start and on_before_render events in package controllers, so you may want to check which version that applies to if choosing to make an intermediate step.

(The bug will only break an upgrade for that one version and only if an addon package uses one of the affected events in the package controller)
JohntheFish replied on at Permalink Reply
JohntheFish
That typically happens when the update was not complete, so you have new code trying to use an old database (that doesn't yet have the updated table).

You can re-run the upgrade script - details in the text file in the root of the upgrade. I think appending ?force=1 will force the script to re-run even if it thinks it already has.

Make sure you have a backup before doing that.
CygnetMidwest replied on at Permalink Reply
CygnetMidwest
Thanks for your help.

I downloaded 5.6.3.1 and uploaded it via FTP. I then went to mysite.com/index.php/tools/required/upgrade.

After a bit , I got the message:

Upgrade to 5.5.2.1 complete!


Before all this, I set my config file to:
<?php define('DIRNAME_APP_UPDATED', 'concrete5.5.2.1');?>

in order to get rid of the Fatal Error.

Any ideas how I can get this thing to update?

Thanks,
Colin
CygnetMidwest replied on at Permalink Reply
CygnetMidwest
Well, I tried deleting the 5.6.3.1 updater directory in /updates/ and redownloaded it from the dashboard, then tried reinstalling. Got the same exact result. I also tried forcing the update and it did not work.

I think I am going to have to step through updates manually at smaller intervals as @exchangecore suggested. Thanks for the info @JohntheFish on the bug. I will be careful.
exchangecore replied on at Permalink Reply
exchangecore
Did you make sure to use ?force=1 when you did the upgrade? Without this, if for some reason it got stopped mid way it might not think there's anything for it to do. Adding this url parameter will force it to do the upgrade again. So you would use this for the url:

/index.php/tools/required/upgrade?force=1
CygnetMidwest replied on at Permalink Reply
CygnetMidwest
Yes, I tried using the ?force=1 on the URL at multiple points in this mess. Didn't help.

This is getting stranger and stranger... I downloaded 5.6.1, uploaded the /concrete/ directory over my old one, went to the index.php/tools/required/upgrade and got a similar message as before:
Your site is already up to date! The current version of Concrete5 is 5.5.2.1. You should remove this file for security.


If I look in the /concrete/config/version.php file, I see:
<?php 
defined('C5_EXECUTE') or die("Access Denied.");
$APP_VERSION = '5.6.1';


What the heck do I do to get this thing to update for me??