8.4.0 Uprgade Fails

Permalink
Trying to upgrade from 8.3.1 to 8.4.0 and get this message on the update

An unexpected error occurred.
Cannot override final method Concrete\Core\Updater\Migrations\AbstractMigration::up()

Same on two sites

Did 4 other sites from 8.3.2 to 8.4.0 and no problems

 
mlocati replied on at Permalink Reply
mlocati
How did you upgrade concrete5? Replacing the concrete directory?
captshaw replied on at Permalink Reply
All where done with softaculous, on TMDHosting Service.
captshaw replied on at Permalink Reply
I go the same error when I tried to go from 8.3.1 to 8.3.2, spent hours with TMDHosting and they said it was a Concrete5 Issue, so I hoped that 8.4.0 would over come the problem.
mlocati replied on at Permalink Reply
mlocati
To see what's going wrong we'd need the contents of the /concrete directory, the /updates directory and (if they exist) the /composer.json and /composer.lock files.

These files shouldn't contain any sensitive data, so you can post here a zip file containing them. Of course if you prefer you can send me a private message.
mlocati replied on at Permalink Best Answer Reply
mlocati
@captshaw sent me the concrete directory via a PM.

BTW that directory contains very malformed files. It seems that the upgrade procedure of softaculous is really broken: the concrete directory contains files from older versions that have been removed in newer versions, and some other files have not been updated to the recent versions.

What I'd do is:
1. delete the /concrete directory
2. delete the /composer.json and /composer.lock files
3. download concrete5 8.4.0 ZIP archive from the concrete5.org website
4. extract from it the /concrete directory and the /composer.json and /composer.lock files
5. upload those 3 elements to the web server

That would solve the problem. BTW someone should contact softaculous about this issue...
cristi78 replied on at Permalink Reply
I'm also planning to use Softaculous to upgrade from 8.3.2 to 8.4.0.
@captshaw said that were no problems with the upgrade on 4 of his sites but I wonder if the upgrade script is doing 100% the right thing.

If possible, I kindly ask @captshaw and @mlocati to also check the concrete folder from a site that went from 8.3.2 to 8.4.0.

Thanks.
mlocati replied on at Permalink Reply
mlocati
> If possible, I kindly ask @captshaw and @mlocati to also check the concrete folder from a site that went from 8.3.2 to 8.4.0.

It's quite easy: simply download the /concrete folder from your website (or the 8.4.0 folder in /updates folder if present), and compare it with the one you can download fromhttp://www.concrete5.org.
To compare folders you can use WinMerge (on Windows) FileMerge (on Mac) or Meld.
cristi78 replied on at Permalink Reply
Oh, I did not update my site yet. I can not afford a site outage during this week and the next one - it's the site of the company I work for and it must be accessible, at least during daytime. Eventually, I will get to update the site at the end of this month.

For now, I was hoping that @captshaw will provide you with the concrete folder from one of the working sites he updated from 8.3.2 to 8.4.0, if it's not too much trouble.
Or, if the upgrade for 4 of his sites went well, can assume that the Softaculous update script is working properly?

I searched today the Softaculous forums but didn't find anything C5 related...

Thanks.
cristi78 replied on at Permalink Reply
@mlocati, I finally did the upgrade from 8.3.2 to 8.4.0 using Softaculous.
The site is functional but I followed your advice and compared the live /concrete with original /concrete using Meld and it seems that there are some leftovers (they appear green on live and strikeout on original).

If I send you both live 8.4.0 and original 8.4.0 /concrete folders, could you please take a look?
mlocati replied on at Permalink Reply
mlocati
@captshaw already sent me the concrete directory via a PM, and I already verified that there were problems.

I contacted the concrete5 core team, and I think that they should have already fixed the Softaculous issue.

If you send me the files, what I'd do is simply check if the /concrete directory is exactly the same as the one contained in the official concrete5 distribution available athttps://www.concrete5.org/developers/developer-downloads... (an operation that you too can do).
In case of differences (missing files, extra files, different files), I'd contact Andrew athttps://www.concrete5.org/profile/-/4... (an operation that you too can do).
cristi78 replied on at Permalink Reply
Ok, I will contact Andrew.

Thanks.
cristi78 replied on at Permalink Reply
I wrote to Andrew.

The differences are related to these folders only - they contain some of the 8.3.2 files.along with the new 8.4.0 ones

concrete\blocks\google_map
concrete\controllers\single_page\dashboard\reports
concrete\js\build\core\app
concrete\js\build\core\image-editor\build
concrete\js\fullcalendar
concrete\js\fullcalendar\lang
concrete\single_pages\dashboard\reports
concrete\src\Updater\Migrations
concrete\tools\dashboard
concrete\tools\users
concrete\vendor\league\flysystem
concrete\vendor\league\flysystem\docs
concrete\vendor\league\flysystem\docs\_data
concrete\vendor\league\flysystem\docs\_layouts
concrete\vendor\league\flysystem\docs\adapter
cristi78 replied on at Permalink Reply
By the way, how can I verify if the database migration went well?

Thanks.
mlocati replied on at Permalink Reply
mlocati
Every migration has a unique numeric identifier (which represents a date/time, like 20180716122130, which can be read as 2018-07-16 12:21:30).

The whole list of migrations is stored in the /concrete/src/Updater/Migrations/Migrations directory

The identifier of the last applied migration is stored in the /application/config/generated_overrides/concrete.php file with the key version_db_installed

When concrete5 applies a migration, it also saves the migration identifier to the SystemDatabaseMigrations database table.
cristi78 replied on at Permalink Reply
The latest file in /concrete/src/Updater/Migrations/Migrations is Version20180524000000.php

The last record in SystemDatabaseMigration is 20180524000000

The concrete.php in generated_overrides contains 'version_db_installed' => '20180524000000',

So I believe all went well...

I asked because I don't know what database migration supposed to do...
I thought maybe some tables' schema get modifed (adding/removing fields).

Anyway, thank you for the help and for your time
captshaw replied on at Permalink Reply
I will try this as soon as I get a chance, Thank you.
captshaw replied on at Permalink Reply
This appears to be working, still doing some testing to make sure.

Thanks for all the help.
captshaw replied on at Permalink Reply
I have found so far every thing working, thanks for all the help.
captshaw replied on at Permalink Reply
I am wondering if softaculous has fixed their issues with upgrading Concrete5?

This comes to mind now that Concrete5 8.4.1 has come out, is it safe to use, or should I wait for Concrete5 to implement it's own internal update?
cristi78 replied on at Permalink Reply
I read couple of days ago that a workaround for Softaculous issues is to manually update by replacing /concrete directory, composer.json and composer.lock and after migration to run Softaculous script to update it's database (otherwise it will still indicate it's a new version available).

I'm thinking about doing this for the 8.4.0 -> 8.4.1 update...
captshaw replied on at Permalink Reply
FYI: I just submitted a Ticket to softaculous to see what they have to say about the situation.
brijeshsoft replied on at Permalink Reply
Hi,

I am from the Softaculous team.

We will discuss with the Concrete 5 team regarding the method we should use to upgrade and will update the package as well.

Sorry for the inconvenience caused.
parin replied on at Permalink Reply
Hi,

I am from Softaculous team.

We discussed with the Concrete5 team and arrived to the conclusion that the concrete folder needs to be deleted first and then the updated concrete directory needs to be placed in the installation directory.

In our case we missed on deleting that directory which may be causing the issue.
However we have just released the fix at Softaculous and shall first delete the directory followed replacing the same with the updated one.

We deeply regret the inconvenience caused to you because of this.

You can execute the below mentioned CRON command via root SSH to your server in order to fetch the updated package :
http://softaculous.com/docs/Immediate_Synchronize_with_Softaculous_...

If you do not have root access to your server, you can wait for 24 hours and the package shall be downloaded automatically.

Also if you want any kind of assistance from us, you can always contact us via our support ticket and we shall revert you as soon as possible.

https://www.softaculous.com/support/...

Let us know.
captshaw replied on at Permalink Reply
Thanks, this is great.

I use TMDHosting and have contacted them to find out when they will update their Softaculous
parin replied on at Permalink Reply
Hi @captshaw,

Sure the scripts do get updated automatically every 24 hours via Softaculous CRON.

Let us know.
captshaw replied on at Permalink Reply
Thanks everyone.

I used Softaculous to update 5 sites and found no problems.
parin replied on at Permalink Reply
Hi @captshaw,

Glad to know that you were able to upgrade your Concrete5 installation via Softaculous.

Thank you for your kind confirmation.