No Code Attached Yet ?
avatar kernusr
kernusr
10 May 2020

Is your feature request related to a problem? Please describe.

Now Joomla 4 has a minimum requirement mysql 5.6.
And:
1 - MySQL 5.6 end of life in February 2021 (less than 12 months)
2 - in the database there are fields is written as JSON encoded data. To simplify the life of extension developers, I would like to be able to work with JSON in MySQL.

Describe the solution you'd like

I suggest updating the minimum requirements to mysql 5.7.8

avatar kernusr kernusr - open - 10 May 2020
avatar joomla-cms-bot joomla-cms-bot - change - 10 May 2020
Labels Added: ?
avatar joomla-cms-bot joomla-cms-bot - labeled - 10 May 2020
avatar kernusr kernusr - change - 10 May 2020
The description was changed
avatar kernusr kernusr - edited - 10 May 2020
avatar richard67
richard67 - comment - 10 May 2020

JSON database field type could be a problem because as far as I know MariaDB won't support that.

@wilsonge What's your opinion?

avatar kernusr
kernusr - comment - 10 May 2020

@richard67 JSON data type, got support in MariaDB 10.2.7 https://mariadb.com/kb/en/json-data-type
But I'm not just talking about the JSON field type
With MySQL 5.7.8 and later I can execute a query, for example:

SELECT `attribs` - >> '$ .article_page_title' FROM` #__ content`

Because the data in the attribs field is JSON encoded

avatar richard67
richard67 - comment - 10 May 2020

@kernusr Would that work in MariaDB, too? If so, beginning with which version? Maybe we should also update the MariaDB minimum version requirement?

avatar richard67
richard67 - comment - 10 May 2020

For explanation: We use the same database drivers for MySQL and MariaDB, but we have of course different minimum version requirements. The support for MariaDB is more or less inofficial, so the minimum version for MariaDB is not listed in Joomla's documentation about required database versions.

avatar richard67
richard67 - comment - 10 May 2020

Current minimum MariaDB version is 10.1 for J4.

avatar kernusr
kernusr - comment - 10 May 2020

Current minimum MariaDB version is 10.1 for J4.

How can you talk about the minimum version of MariaDB if her support is not stated in the documentation.
As far as I understand, the user uses MariaDB at his own risk. There is no version check for the MySQL forks in jumla. Therefore, the user must solve all compatibility problems independently.
Otherwise, it is necessary to prescribe compatibility conditions not only with MariaDB but also with other MySQL forks (for example: Percona)

The talk about the "official" support of Mary was here #14141 and it is closed

avatar richard67
richard67 - comment - 10 May 2020

We check the minimum version for MariaDB at several places, e.g. when running installation we define it here https://github.com/joomla/joomla-cms/blob/4.0-dev/installation/src/Helper/DatabaseHelper.php#L30 and use it here https://github.com/joomla/joomla-cms/blob/4.0-dev/installation/src/Helper/DatabaseHelper.php#L150.

avatar kernusr
kernusr - comment - 10 May 2020

Please look fo this https://endoflife.date/mariadb
MariaDB 10.1 has end of life in 17 Oct 2020

avatar kernusr
kernusr - comment - 10 May 2020

We check the minimum version for MariaDB at several places, e.g. when running installation we define it here https://github.com/joomla/joomla-cms/blob/4.0-dev/installation/src/Helper/DatabaseHelper.php#L30 and use it here https://github.com/joomla/joomla-cms/blob/4.0-dev/installation/src/Helper/DatabaseHelper.php#L150.

I was inattentive and missed this moment

avatar richard67
richard67 - comment - 10 May 2020

If MySQL supports the JSON stuff since version 5.7.8, we only have to find out which MariaDB version starts to support that, too, and raise the requirement for both to the right value. @kernusr Can you investigate that MariaDB version number?

avatar richard67
richard67 - comment - 10 May 2020

@kernusr And why 5.7.8 and not just 5.7 as minimum for MySQL?

avatar kernusr
kernusr - comment - 10 May 2020

As far as I know, MariaDB has received json support since the JSON data type, got support in MariaDB 10.2.7
But I will additionally check this on the test server and report the result

avatar richard67
richard67 - comment - 10 May 2020

If you can investigate all that I can make the necessary pull request here for Joomla 4.

avatar kernusr
kernusr - comment - 10 May 2020

@kernusr And why 5.7.8 and not just 5.7 as minimum for MySQL?

100% work with JSON is confirmed only from version 5.7.8
I can not guarantee that in MySQL 5.7.0 this will work correctly

If we hope that users install all software updates on time, then we can limit ourselves to checking version of MySQL 5.7

avatar brianteeman
brianteeman - comment - 10 May 2020

Hosts tend to be quite conservative when it comes to the version of mysql in use.

If I understand this request correctly there is nothing stopping you making it a requirement for using your code.

As there is nothing in core that would be using this I would be reluctant to change the minimum version for the entirety of Joomla - my 2c

avatar brianteeman
brianteeman - comment - 10 May 2020

I would also look at our usage stats before making any change

avatar richard67
richard67 - comment - 10 May 2020

@brianteeman Agree on that. I think it has to be decided by release lead or PLT anyway. Just in case if it needs to make the PR, I will be available. Regarding stats: Do we already have useful stats for J4?

avatar kernusr
kernusr - comment - 10 May 2020

I agree with @brianteeman that hosts are conservative
However, the release date of the RC and Stable version of the joomla are not defined
I am sure that the release of J!4 will take place after the end of support for MySQL 5.6 and MariaDB 10.1 and the hosts will have no choice how to update the MySQL version on their servers

avatar brianteeman
brianteeman - comment - 10 May 2020

Assume people won't change hosts when they upgrade from 3 :)

avatar ReLater
ReLater - comment - 10 May 2020

A question to the extension developers: Why don't you establish a DB check in your extension's script.php? Gives you the freedom to restrict the requirements to whatever you want and it's simple.

I mean instead of kicking the next group of potential users because their DB version doesn't match. If the Joomla core doesn't need a version higher than xx, Joomla shouldn't establish restrictions from my point of view.

avatar ReLater
ReLater - comment - 10 May 2020

and the hosts will have no choice how to update the MySQL version on their servers

They have and always had the choice to use older versions, too. That's the "living reality".

avatar HLeithner
HLeithner - comment - 10 May 2020

We choose MySQL 5.6 as requirement because we need a migration path between Joomla 3.10 and 4.0, Joomla 3.x could have problems with MySQL 5.7 because of the datetime column.

avatar richard67
richard67 - comment - 10 May 2020

@HLeithner Thanks for the explanation ... I knew there was a reason for it, I just did not remember now which one ?

avatar b2z
b2z - comment - 11 May 2020

Does 5.7 enforce strict standard? Why there could be a problem with datetime field?

avatar Quy Quy - change - 12 May 2020
Labels Added: ?
avatar Quy Quy - labeled - 12 May 2020
avatar wilsonge
wilsonge - comment - 13 May 2020

Kinda correct. See the section https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sql-mode-changes . It's configurable around the NO_ZERO_DATE flag but we can't really start to guarantee behavior. In MySQL 8 that then become enabled by default which is the hard break. Changing all our null dates is obviously a b/c break for anything querying content tables etc which is why we made the change in J4 but we obviously need a j3 and j4 version that support the same MySQL version

avatar kernusr
kernusr - comment - 3 Feb 2021

Well. It's February 2021. Maybe we should go back to the discussion of mysql 5.7?

avatar brianteeman
brianteeman - comment - 3 Feb 2021

It wont change the problem of users upgrading as described above by both @HLeithner and @wilsonge

avatar alikon
alikon - comment - 3 Feb 2021

this issue has been opened on May 2020
till then a lot of water has flowed under the bridge

  • j3 will be supported for 1/2 years more

so don't cut the wings of j4

avatar krileon
krileon - comment - 16 May 2021

IMO the minimum should be moved to MySQL 5.7. Supporting and promoting the use of an end of life version is dangerous. MySQL 5.6 will not receive bug or security fixes anymore. Joomla should move its requirements to never support an EOL version. It's not just about "what features does that version bring?". Joomla 4 stable is not released. This is the right time to be making these changes.

Regarding the JSON column stuff the following versions fully support JSON columns. They are a more efficient storage for JSON data on MySQL. It doesn't matter for MariaDB as it has different storage methods for TEXT that they found to be fine for JSON.

MySQL 5.7.8
MariaDB 10.2.7

I made the same argument for PHP 7.4 minimum instead of PHP 7.2, which is also EOL, and fell on deaf ears. I suspect this will do the same unfortunately. Next major releases of modern frameworks are bumping their MySQL and PHP versions respectively. There's no reason Joomla shouldn't do the same. Joomla needs to attract modern talent.

avatar rodlie
rodlie - comment - 1 Sep 2021

Note that a lot of servers run RHEL/CentOS 7.x and don't have the required MariaDB version for Joomla 4. I was planning to do some test installs of Joomla 4 before planning to upgrade several Joomla 3 sites on our servers (we host Joomla sites for companies), but I can't even install Joomla 4 due to this issue.

And Joomla 3.10 will be EOL before RHEL/CentOS 7.x

avatar PhilETaylor
PhilETaylor - comment - 1 Sep 2021

This should be moved to discussions.

avatar HLeithner HLeithner - change - 1 Sep 2021
Status New Closed
Closed_Date 0000-00-00 00:00:00 2021-09-01 12:16:34
Closed_By HLeithner
Labels Added: No Code Attached Yet
Removed: ?
avatar HLeithner HLeithner - close - 1 Sep 2021
avatar HLeithner
HLeithner - comment - 1 Sep 2021

I'm closing this since J4 is released and the core wouldn't benefit (at this time) from a newer minimum requirement.

@rodlie sadly we can't give the same version support like centos mainly because we don't have enough volunteers to handle this. Also Joomla could benefit from new features supported in the newer database engine like JSON encoding. I know it maybe not your way to go but you can easily install mariadb 10.4 on centos.

A possible way to extend Joomla 3 lifetime would be on extended support contract like typo3 is doing this but I don't see enough companies asking for this (and are willing to pay for it).

avatar rodlie
rodlie - comment - 1 Sep 2021

@HLeithner I understand that this can't be fixed now, but this is a major issue for hosting providers, and something that should have been considered before the release of Joomla 4.

On a positive note, I don't need to migrate from v3 to v4 anymore :P (which would have taken a year at the minimum).

avatar HLeithner
HLeithner - comment - 1 Sep 2021

It was hard enough to keep 5.6 as minimum version (which is already EOL) and not switch directly to 8.0.... we also have some really bad mysql 5.7 versions doing wired stuff... mysql 5.5 is EOL 3 years ago...

if you don't migrate what are you doing instead?

avatar rodlie
rodlie - comment - 1 Sep 2021

if you don't migrate what are you doing instead?

If possible backport fixes, if a issue got a CVE or something I can fix it, else do nothing.... at least until 2024.

Add a Comment

Login with GitHub to post a comment