Upgrading from Elgg 2x to 3x

I am speaking here primarily about Elgg Upgrade from 2x to 3x, just default installations of BOTH, no extras, nothing else.
I have seen this and http://learn.elgg.org/en/2.0/admin/upgrading.html but is there any better textual or pictorial (like wikihow) manual?

Back up your database, data directory, and code
Log in as an admin to your site


Understood, no problem
So now I am logged in, into Elgg2x admin page.

Download the new version of Elgg from http://elgg.org
Update the files
If upgrading to a major version, you need to overwrite all core files and remove any files that were removed from Elgg core, as they may interfere with proper functioning of your site.

Yes I have downloaded Elgg 3x. Now ....
Overwriting all core files means all files of the folders of elgg-config | mod | vendor 
and the files htaccess, index.php, upgrade.php etc outside the folders - ALL OF THEM? 
and what does "remove any files that were removed from Elgg core" mean? - how do I know which files? Is there a list of these files (url?)?
for example, do I remove the core aalborg folder?

Now if I visit upgrade.php will I not be having a completely changed (=elgg3x) interface as I have already removed all 2x files (including themes) - this is somewhat confusing?

Also what happens to the database? Elgg 3x has fewer tables than 2x. If I have to directly look into db for some reason, which table contents of 2x get merged to 3x - is there any learn.elgg doc (me not finding such) ?

Between version changes for example from 2x to 3x or say from 3.x.x to 3.x.y are there any learn. elgg org that lists the names of files changed, assuming that there is NO change in db or db schema? People having knowledge on this, if having some spare time, can upgrade or add more specific data to learn.elgg, and this will be of immense help.

Thanks for any help from anyone who has done actual upgrades for providing a more explicit and step by step of Elgg upgrade. Also is there any particular tutorial that is specific for upgrade between various versions of 3x?

  • I have moved from manual install to composer install and it has saved me lot of time for all the major or minor version update. All I need to do now is run "composer updated" via terminal and my elgg gets updated to the latest version. Once updated I would run the sites upgrade and it will take care of all the migration part. I would recommend that one should move from manual install to composer.

    So now to answer your questions:

    Is there any better textual or pictorial (like wikihow) manual?

    No, I don't think there is any pictorial manual. None that I am aware of.

    what does "remove any files that were removed from Elgg core" mean? - how do I know which files? Is there a list of these files (url?)?

    it simply means that remove all files and folder except your settings.php file and copy the new files and folder after you have removed them. This will ensure that any files that was removed does not exists as those files will not be there in the new zip file.

    Now if I visit upgrade.php will I not be having a completely changed (=elgg3x) interface as I have already removed all 2x files (including themes)

    You have to visit "Admin" > "Upgrades". This will show you the list of changes required for 3.x migration. All you need to do is click a button to start the upgrade.

    Also what happens to the database? Is there any learn.elgg doc?

    Nope, there is no such list. But if you want you can refer to the upgrades php files and analyze the code to understand what changes are being done at the database level. Example: https://github.com/Elgg/Elgg/blob/3.3/engine/schema/migrations/20191015125417_set_river_enabled_to_yes.php (In this file - It was included on 2019-10-15 and from the code I can say the enabled column of the river table was set to a value "yes" where it was "no")

    Between version changes for example from 2x to 3x or say from 3.x.x to 3.x.y are there any learn. elgg org that lists the names of files changed

    Yes, all changes are tracked here - http://reference.elgg.org/3.x/md_CHANGELOG.html or you can also use these as well https://github.com/Elgg/Elgg/tree/master/docs/appendix/upgrade-notes

  • Thanks a lot. @RvR @Rohit Gupta  RvRRohit Gupta
    So,  all files and folder except settings.php is REMOVED, that's what I was wandering about.
    However, do I stay in browser on Elgg2x/upgrade.php and hit  Elgg2x/upgrade.php or REFRESH and go to Elgg3x/upgrade.php and do this? Really sorry, if I am sounding dumb. I think RvR says to stay on old-site/upgrade while in the background all files and folders are new. What pops in my mind are two questions:

    - what happens to aalborg theme? it upgrades?
    - what happens to db tables - does the upgrade script deals only with database (as files and folders are already manually changed)?
    I know I can test run everything but connectivity is so slow or nil at the moment, even elgg org is throwing back error repeatedly : 504 Gateway Time-out nginx/1.10.3 (Ubuntu)

    I have read some manual on composer install - legacy zip install seems easier to me, but would like to know how easily composer install can be done (and whether it changes db tbales also), and can it done via Cpanel etc - any pointers to easy, pictorial guides or guides with examples? Many thanks.