Migrating to Joomla 4 is easier than you think
If you’re still using Joomla 3 you’ll no doubt have seen the message that: “Support for Joomla 3.10 ends on 17th August 2023” I was last in this situation with Joomla 2.5.28 and at the time I carefully documented my experience as it took a number of goes to update and included several quirks, such as turning off the “Remember Me” plugin and then copying library files once the update had been done. For me this was a painful process.
Thankfully migrating from Joomla 3 to Joomla 4 has been streamlined and the pain of updating Joomla has been removed. The experience is enhanced by the Pre-Update Check tool which checks server settings, recommended settings and that extensions are ready for the new version of Joomla.
Benefits Of Upgrading
Not only is migrating to a new version of Joomla about staying current with software such as PHP and avoiding vulnerabilities, there’s also dozens of features awaiting your arrival and you should take a read of what they are and can offer you. Some are workflows that help teams work more efficiently, others are re-organised functions that help you manage the website more easily.
Much like moving into a new house, the new interface takes a little bit of getting used to. Firstly, by default, all the menus from J3 are now on the left in J4. But that’s OK, it’s the same Content, Menu, Component structure.
My favourite part has become the System area, whereby shortcuts are set by Action so I can Manage, Install, Update or perform Maintenance tasks from within the corresponding sections. This is great once you realise that Extensions > Manage is now System > Manage > Extensions and Components > Redirects is now System > Manage > Redirects - makes sense doesn’t it?!
Migrating your website requires planning and discipline. It shouldn’t be an impulsive action as there are many possible hurdles along the way. For example, not all the extensions, or the template that you are currently using in Joomla 3 may have been updated and some may have been discontinued.
Before moving to the update stage, do an audit of all extensions and check with the developer websites to see whether there is a J4 version available. Notable in this list is K2 ( https://getk2.org/blog/k2-v2-11-rolling-releases-joomla-4-and-more ) and you may need to think about how to convert your content into articles going forward if you can’t wait for a J4 version.
Next on the list, did you or another developer create any custom modules or components? The main difference between Joomla versions is the class names used but you will need to make changes for custom code to work in the new version.
- Extensions / plugins / packages
- Template compatibility
- Custom-coded extensions
- Server capability (ie PHP version)
- Minimum requirements for J4
- Are you sharing webhosting with other sites? Can they run on the same PHP version?
- Are the same modules enabled on the new version of PHP? My version didn’t want to work on PHP 8.1 due to a reference to get_magic_quotes()
Test On A Copy Of Your Website First
However large or popular your website is, you will want to ensure it doesn’t go down for any length of time. Errors and issues do happen and it may be easiest to start again rather than trying to fix an annoying issue.
If your extensions audit didn’t flag up anything serious, then try going through the update steps. I found that it was helpful to do this more than once before scheduling a content freeze on the live site. In an ideal situation, even with updating extensions you could be done in 30 minutes.
Backing up as you go means if something bad happens you can restore to the last good point of the migration rather than starting again. And once you get to pushing it live, always make sure there’s a version of the live site you can rollback to if you have to.
Joomla 4 comes with an updated migration experience which means all plugins and extensions are tested to make sure they’re compatible with the new environment. This includes checking the PHP version and settings. Extensions that need attention are highlighted as a “Potential Upgrade Issue” and these items should be checked further on the developers’ websites before proceeding.
Think of the pre-update check as an audit of your work and be happy that someone has got your back. Provided you’re doing this check on a staging version, if it all goes belly-up, you can start over without trashing your live site.
If you don’t see the latest Joomla Update when you visit Components > Joomla Update, then select Joomla Next as the Update Channel from Options.
Update extensions and take your time
For me, doing updates to Joomla 4 gives me an opportunity to review old extensions and maybe replace them with something more useful. I’ve been through a number of form extensions, for example, and found at least one site where I could update that functionality at the same time.
You may be advised to disable certain extensions before upgrading - “There are plugins installed and enabled that could interfere with the Joomla upgrade and result in a failed upgrade that leaves the site inaccessible. You are strongly advised to upgrade, disable or uninstall these plugins before upgrading.”
I don’t know if this would kill your migration but in one test I found I had to update database tables and reinstall missing components from Discover. When I disabled extensions, as advised, it was plain sailing.
Update On Dev, Copy To Live
This has been my process when migrating Joomla 3 websites. It makes for minimal downtime and as long as you have agreed a window with the client whereby no content is updated, once the website is working correctly on the Joomla development site, and it’s been signed-off by the client, the next stage is to copy to the live site.
I found the safest option was to move all the live files into a “SAFE” folder, and then copy everything from the dev site. *** Be careful that you’re connecting to the correct database at this stage.
Once you’re happy with all your checks go to the Live Update tab and review any final warnings (“Do you wish to ignore the warnings about potentially incompatible plugins and to proceed with the upgrade?”).
Check Post-installation Messages
Re-enable And Update Extensions
Some extensions may need updating before they can be activated on your migrated site, this goes for Regular Labs on sites I manage. I made a folder with updated files in readiness for this. In addition I used the list of extensions and plugins I’d disabled as a checklist for re-enabling them in Joomla 4. You may find other Extension Updates appear and also check Discover. You’ll want to check the System area to make sure about any link that has a number next to it.
Take A Look At The Front End
Provided you have approached your migration with care, the front end of your migrated website should look like the front end of the previous version. Click menu items to make sure your pages appear as expected and maybe run one final backup, just to be sure.
Welcome To Joomla 4!
If you’ve resisted being impulsive and been disciplined about the process of migrating to Joomla 4, you should have found the process was easier than expected. Upgrades have come a long way, after all, why let it be difficult if there’s so many great features in the new version?
It's not easy and it's not an upgrade. It's a migration. It's a real pain in the ass. Luckely all my clients are paying the extra costs that this brings. The migration, the new templates I need to build, the testing, etc, etc, etc, etc, etc. Hopefully the migration to Joomla 5 will be a 'normal' and easy upgrade.
Having done my first Joomla migrations from 1.0 to 1.5 and every migration since on many client sites, I can say the J3 to J4 is a breeze by comparison. That doesn't mean I have not had my share of issues. Usually due to old and unsupported extensions. Those extensions of course should not be being used anymore anyway as they don't get any security updates, so forced cleaning them out of sites is a good thing, if sometimes painful. The biggest problems come from very complex templates that have no upgrade path. Just another reason to steer clients away from complex template frameworks and off the shelf templates that bog sites down anyway. Simple templates and minimising extension use makes better sites and easier upgrades.
Hopefully the template developers have provided solutions for J3 to J4. My experience has been with Gantry and Yoo Theme mostly. Yoo Theme Pro worked fine. I have older Yoo templates and I think that will need a template migration. Like you say, "forced cleaning out is a good thing" !