Redaxo: Inkompatibilität mit MySQL 5.5

Created on 8 Jul 2020  ·  3Comments  ·  Source: redaxo/redaxo

In letzter Zeit haben einige Probleme beim Update mit MySQL 5.5 zu R5.11 gemeldet.
Der Fehler sieht dann so aus:

Der Core konnte aus folgendem Grund nicht aktualisiert werden:
structure: SQL error: Error while executing statement "ALTER TABLE rex_article CHANGE pid pid int(10) unsigned NOT NULL AUTO_INCREMENT, CHANGE revision revision int(10) unsigned NOT NULL AFTER updateuser, CHANGE createuser createuser varchar(255) NOT NULL AFTER createdate, CHANGE updatedate updatedate datetime NOT NULL AFTER createuser, CHANGE updateuser updateuser varchar(255) NOT NULL AFTER updatedate;"! SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updateuser' in 'rex_article'

Die nicht gefundene Spalte ist aber jeweils vorhanden.
Aber MySQL 5.5 kommt scheinbar nicht damit klar, wenn in einem ALTER TABLE die Spalte gleichzeitig bearbeitet wird, die vorher schon als Positionsangabe AFTER col verwendet wird (obwohl die Spalte wie gesagt auch vorher schon existierte).
Zu sehen ist das auch hier: https://www.db-fiddle.com/f/8NFCs3Kd6BLXNSszFSDyPN/0
Mit 5.5 als Auswahl kommt ein Fehler, mit 5.6 nicht.

Ich hatte in 5.10 einiges bzgl. der Positionsanpassungen in rex_sql_table korrigiert, und scheinbar kommen erst seitdem solche Statements wie oben in der Kombination vor. Und das greift halt erst nun beim Update von 5.10.1 ausgehend.

Man müsste das Alter-Statement vermutlich umsortieren, oder alle Anweisungen als Einzel-Statements ausführen.
Allerdings stellt sich die Frage, ob wir den Code für MySQL 5.5 noch ändern sollten. Eigentlich bin ich froh, wahrscheinlich nun eine Variante gefunden zu haben, die vom Prinzip richtig sortiert (und bloß in 5.5 halt nicht funktioniert).

Eigentlich war mein Plan, die Mindest-DB-Version erst anzupassen, wenn wir auf die Mindestversionen für utf8mb4 springen können. Aber für MySQL 5.7 ist es noch zu früh, dafür ist 5.6 noch zu viel in Verwendung.
Aber ich frage mich, ob wir dann vielleicht jetzt doch schon mal den kleineren Schritt auf Mindestversion 5.6 machen sollten, statt zu versuchen, es für 5.5 zu fixen. Wie seht ihr das?

Bug Core

Most helpful comment

Ich habe beim Changelog im Installer für 5.10.1 und 5.11.0 nun oben eine Warnung ergänzt, dass die Versionen zu MySQL 5.5 nicht kompatibel sind, und es aber noch nicht geprüft wird.

Aktuell prüfen wir bei der Mindestversion MariaDB nicht explizit, sondern prüfen da auch nur mit 5.5.
Ich denke, da würde ich dann auf >=10.1 gehen.

All 3 comments

Mysql 5.5 ist EOL. ich finde wir sollten es loswerden.

Streng genommen verstößt ein server betreiber der EOL versionen einsetzt gegen die DSGVO, da er nicht alles für ihn Mögliche tut um die Sicherheit der Daten zu gewährleisten. Somit würden wir durch erhöhen der min Version auch die Redaxo Anwender/Admins schützen bzw. Letztenendes auch die Daten der Enduser

Wir warnen vor mysql 5.5 seit https://github.com/redaxo/redaxo/pull/3310

Der letzt versuch mysql anzuheben war hier https://github.com/redaxo/redaxo/pull/2914

Ich habe beim Changelog im Installer für 5.10.1 und 5.11.0 nun oben eine Warnung ergänzt, dass die Versionen zu MySQL 5.5 nicht kompatibel sind, und es aber noch nicht geprüft wird.

Aktuell prüfen wir bei der Mindestversion MariaDB nicht explizit, sondern prüfen da auch nur mit 5.5.
Ich denke, da würde ich dann auf >=10.1 gehen.

Was this page helpful?
0 / 5 - 0 ratings