Support

Akeeba Backup for Joomla!

#39102 Upgrading to Joomla4

Posted in ‘Akeeba Backup for Joomla! 4 & 5’
This is a public ticket

Everybody will be able to see its contents. Do not include usernames, passwords or any other sensitive information.

Environment Information

Joomla! version
Joomla! 3.10.11 Stable
PHP version
PHP 8.0.28
Akeeba Backup version
8.3.1

Latest post by nicholas on Thursday, 13 July 2023 02:39 CDT

equestriansquest

So sorry to bother you with this. I am sure that you are so tired of answering questions about upgrading to Joomla4.

Just wanting to double check before moving forward.  The script ran that you designed to clean up old files.  Yet still I got the following request to update as you can see in the image included. As far as I know everything is updated at this level for Joomla3 currently.

Just thought I should check before proceeding.

Thank you so much for such excellent programming.  

Warmly
Nadja

equestriansquest

I gather the image png was not supported and didn't go through.

So here is the text I am seeing going through the updating process

 

Update Required

Please update these extensions before updating Joomla.

Akeeba Backup package Package
file_fef File
Admin Tools package Package
Akeeba Ticket System package Package
My Shortlist Package
file_fof40 File
Rapid Contact Ex Package
Akeeba Engage package Package

equestriansquest

Sorry forgot about this file as well that the updater noted.

F0F (NEW) DO NOT REMOVE

Site

Library

revAA17947

2016-04-01

Nicholas K. Dionysopoulos / Akeeba Ltd

From <https://dev.kjrsos.com/administrator/index.php?option=com_installer&view=manage>

That should be it and hopefully the last of it.

 

Warmly

Nadja

nicholas
Akeeba Staff
Manager

Do not trust the broken and untrustworthy information in the so-called “Pre-update check”. Its logic is completely broken. It tries to use the extension update information to determine if a version of an extension is compatible with the new version of Joomla. This is completely wrong, and I have told the Joomla! maintainers four times between August 2020 and July 2021 (the year prior to the Joomla 4.0 stable release).

Extension developers will of course choose to not make available an older version of their extension to a newer Joomla version. We do not want people installing Akeeba Backup 8 on Joomla 4, even though technically it is compatible. The reason is that it does not and cannot have full support for some Joomla 4 features which are not present in Joomla 3. Joomla shows that in the “pre-update check” as Akeeba Backup 8 not being compatible with Joomla 4 which is, not to put too fine a point on it, utter nonsense. Akeeba Backup 8 was released as the “bridge” version between Joomla 3 and 4.

Ignore the wrong and slanderous information in Joomla's useless “pre-update check” page. Use the process outlined in our official migration guide.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

equestriansquest

Hi Nicholas,

I had to laugh reading your answer.  I so understand how you feel.

Well I ran into a problem with the upgrade again, nothing to do with Akeeba and to be honest I kind of have had it.  So I decided I would just start fresh with Joomla4 and rebuild everything from scratch. It will be cleaner over all, but the work involved will be nuts between copy/pasting articles (I have over 2000) and redoing the menu but hopefully in the end it will be worth it as I won't have to worry about old code etc.

Anyways I went to activate Akeeba Backup and the following message popped up.

"Akeeba Backup is ready to backup your site, but there are potential issues

Your database table name prefix contains one or more uppercase letters."

If this is an issue, I have been told that if this is a problem "You can take an export of your MySQL database (e.g. through phpMyAdmin), then use a text editor to replace all instances of your table name prefix with a lower case equivalent. You would then re-create your database, import your modified backup, then adjust your 'configuration.php' for Joomla accordingly."

Just thought I would check before adding that to the list of jobs I need to get done.

Thanks Nicholas.  I keep wishing that you were the one in charge of Joomla and you could bring your expertise and professionalism to the system.  :)

Warmly
Nadja

nicholas
Akeeba Staff
Manager

 So I decided I would just start fresh with Joomla4 and rebuild everything from scratch. It will be cleaner over all, but the work involved will be nuts between copy/pasting articles (I have over 2000) and redoing the menu but hopefully in the end it will be worth it as I won't have to worry about old code etc. 

There is a better way to do that without having to copy over content.

Take a backup. Restore it in a new subdomain or test server. Uninstall every third party extension. Install Akeeba Backup and take a backup. Upgrade to Joomla 4.x. No need to copy articles, no upgrade issues.

If this is an issue, I have been told that if this is a problem "You can take an export of your MySQL database (e.g. through phpMyAdmin), then use a text editor to replace all instances of your table name prefix with a lower case equivalent. You would then re-create your database, import your modified backup, then adjust your 'configuration.php' for Joomla accordingly."

Yes, it will be an issue in many cases. If you do what I described above, when restoring choose a new prefix with all lowercase letters.

Thanks Nicholas.  I keep wishing that you were the one in charge of Joomla and you could bring your expertise and professionalism to the system.  :)

A few months ago my wife got elected as the President of the OpenSourceMatters board, the body overseeing Joomla. She's been trying to restore sanity to the project's leadership structure ever since (a mighty feat if you ever saw one). Just give it a while, people need to change one way or another (either change their mentality, or replaced with those who have the right mentality).

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

equestriansquest

Thanks, Nicholas, for the suggestion.  Much appreciated.

In the meanwhile, I thought I would inform my provider that this issue existed just thought I would let you know what information I got back.

"When you install a copy of Joomla with Softaculous, it may use a mix of upper- and lower-case characters in the database table prefix for optimal security. So, if you do not want the possibility of upper-case characters being used, you would need to manually install Joomla yourself instead."

So, anyone using Softaculous will be running into this problem. 

I tried to give them a head's up, hoping that maybe there will be some kind of warning for people who use Softaculous.  A pain when you find out about it after the fact. I really hate the thought of others having to go through that.

Congratulations and Good Luck to your wife!  A brave person to take this on. I can't wait to see the results!!!  

She has my support, just wish I could do more than just wish her luck.

And as always thanks so much Nicholas for your help.

Warmly
Nadja

nicholas
Akeeba Staff
Manager

Yeah, I know that Softaculous does that. The problem is with MySQL itself and case–insensitive filesystems.

Softaculous only runs on Linux which only has case–sensitive filesystems. MySQL can run on Operating Systems with case–insensitive filesystems such as Windows (NTFS, FAT, FAT32, and exFAT are all case–insensitive) or macOS (if the volume is formatted as case–insensitive HFS+ or APFS, which is the default since several years ago).

The problem lies in the on–disk layout of MySQL databases and how that relates to MySQL listing the tables of a database. MySQL creates .ibd (InnoDB tables) or .frm (MyISAM) files for each and every database table. For example, an InnoDB table named F0O_users has a file named F0O_users.ibd created in MySQL's folder for that database. When you ask MySQL to list the tables in a database it looks for these files and prints out their filenames, without their extensions.

Here comes the fun part.

If you are on a case–sensitive filesystem, e.g. your Linux server, MySQL returns the filename without the extension verbatim. This table is listed as F0o_bar and the backup engine knows it belongs to your site. It's backed up as #__bar which allows you to change its prefix when restoring it. The backup can be restored on any server.

If you are on a case–insensitive filesystem, e.g. a Windows or macOS computer, MySQL returns the filename without the extension in lowercase by default. This means that the aforementioned table is reported as f0o_users, not F0O_users. Because of this issue in MySQL, the backup engine cannot know that the table is the same as F0o_users, therefore it backs it up as f0o_users unless you have a filter to exclude any tables not belonging to your site (in this case no tables are backed up and the backup is unusable). The backup with the lowercase tables can be restored as long as you set the table name prefix to its lowercase version: f0o_. If you use the original table name prefix (f0o_) then the restored site will be unusable if you are restoring to a case-sensitive filesystem (because your site will be looking for F0o_bar, not the created f0o_bar) and any subsequent backup will suffer from the same issue.

This is not a problem in Akeeba Backup itself, though. It is a problem with MySQL. You will get exactly the same problem if you use phpMyAdmin to backup your database tables. That's a point that nobody gets and a reason why people who run into this problem use Akeeba Backup. We warn them about the problem, propose a solution, and they can solve their problem very neatly.

Unfortunately, solutions like Softaculous are disconnected from real world users. Their business model is that they only care about the hosting company running their software on a Linux server which runs one of the Linux distribution versions they support. The fact that what their software is doing is screwing up users who want to transfer their site between their server and their local computer, or between servers with different Operating Systems, is not a use case they care to support. We have to support every use case, hence the warning that what you have right now will cause problems, and the suggestion to fix it.

That said, I've been thinking about a solution to this problem — but I do need to run a few more tests. It boils down to this. If we have a mixed case or all uppercase table name prefix (e.g. f0O_) we can check if we can list any tables with that prefix. If not, but we do have tables with the all–lowercase prefix (e.g. f0o_) then we know for a fact we have hit MySQL's stupid case-sensitivity issue. This should let us magically change the prefix we expect to all–lowercase, alleviating the problem. Well, that's the theory. Once I fix some time I will put it to the test. If things work the way I suspect they do, this warning will be a thing of the past and Akeeba Backup will be able to magically back up and restore your site regardless of the database prefix case sensitivity.

As I've always said, it really pays to listen to your users; they will let you know about use cases you would have never thought about on your own. I know that my wife is trying to build a Joomla! leadership team which believes the same and is willing to use us 3PDs as a proxy for getting feedback from the myriads of users. We're good at filtering the noise, identifying patterns, and come up with solutions — we kinda do this for a living, right?! If Joomla will let us be its wingmen we will all be better for it. This change has already started, if somewhat slowly. Hope's not lost 🤞🏼

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

equestriansquest

Hi Nicholas,

I replied to your last post, but I don't see it.  Sorry. Honestly, I was not ignoring you. lol

We do need someone listening to users.  I feel like Joomla development has gotten stuck and has not really paid attention to areas that Joomla is weak in.  Areas that I find myself trying to overcome all the time, that while I might understand the limitations imposed from a software perspective that from a usage perspective I think need to be addressed, or we lose people.  This is a content management software, and it seems no one is looking at what kind of usage that might imply.  I have a list! that I won't bore you with.  :)

I just want to say I really appreciated the explanation, that helps.

I think your skillset and knowledge and idea generation will be priceless to the Joomla community. Even simple things you come up with just make things so much easier and make so much sense.  Like the temporary user feature. I love it.  Not having my users clogged up every time I need to give access for someone to check why something isn't working is so nice. Knowing that they will be automatically deleted. Perfect! I use that feature all the time!

I noticed you have an update for Akeeba, any chance this resolves the prefix issue?  Just thought I would double check.  I haven't as yet manually updated my database prefix as suggested by my hosting provider to all lowercase. I did try your suggestion to delete all plugins and try upgrading again but ran into the same problem before which unfortunately I never was able to isolate, I end up with an error, I get blocked and can't get back into any of my backend pages. So back to replicating the site in Joomla4.  Which I think will be a good thing in the end because I needed to get the site reorganized anyways.  The problem with a large content site it can get messy!  Hence the question.  I was thinking I should probably manually update the database before doing the most recent updates.  

Thanks!

Warmly
Nadja

 

nicholas
Akeeba Staff
Manager

I noticed you have an update for Akeeba, any chance this resolves the prefix issue?

No, not yet. This is a change which requires some time to work on and affects all backup products. As a result, I am going to be working on it in late July and August, when our support load is minimal and we have no releases planned.

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

equestriansquest

Hi Nicholas 

That is what I thought you would probably say.  lol But I thought it was worth the ask. Thanks as always for your prompt reply.  But remember to take some time off for yourself!!!

Warmly
Nadja

nicholas
Akeeba Staff
Manager

Thank you! Have an awesome day :)

Nicholas K. Dionysopoulos

Lead Developer and Director

🇬🇷Greek: native 🇬🇧English: excellent 🇫🇷French: basic • 🕐 My time zone is Europe / Athens
Please keep in mind my timezone and cultural differences when reading my replies. Thank you!

Support Information

Working hours: We are open Monday to Friday, 9am to 7pm Cyprus timezone (EET / EEST). Support is provided by the same developers writing the software, all of which live in Europe. You can still file tickets outside of our working hours, but we cannot respond to them until we're back at the office.

Support policy: We would like to kindly inform you that when using our support you have already agreed to the Support Policy which is part of our Terms of Service. Thank you for your understanding and for helping us help you!