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 TABLErex_articleCHANGEpidpidint(10) unsigned NOT NULL AUTO_INCREMENT, CHANGErevisionrevisionint(10) unsigned NOT NULL AFTERupdateuser, CHANGEcreateusercreateuservarchar(255) NOT NULL AFTERcreatedate, CHANGEupdatedateupdatedatedatetime NOT NULL AFTERcreateuser, CHANGEupdateuserupdateuservarchar(255) NOT NULL AFTERupdatedate;"! 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?
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.
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.