Hallo, nach dem Hochladen einer lokalen Website-Kopie (aus XAMPP) auf den Webserver - genau nach Anleitung - kann die Website zwar fehlerfrei aufgerufen werden, aber die Datenbank lässt sich nicht mehr aktualisieren. Das Contao-Installtool bricht die Aktualiserung mit folgender Fehlermeldung ab:
Code:
[2021-08-26 13:59:40] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\Exception\DriverException: "An exception occurred while executing 'ALTER TABLE tl_content CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci': SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline." at /home/['Aktueller Benutzer']/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 128 {"exception":"[object] (Doctrine\\DBAL\\Exception\\DriverException(code: 0): An exception occurred while executing 'ALTER TABLE tl_content CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci':\n\nSQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. at /home/['Aktueller Benutzer']/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:128, Doctrine\\DBAL\\Driver\\PDO\\Exception(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. at /home/['Aktueller Benutzer']/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDO/Exception.php:18, PDOException(code: 42000): SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline. at /home/['Aktueller Benutzer']/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:132)"} []
Eigentlich dürfte das Contao-Installtool überhaupt keine Aktualisierungen der Datenbank durchführen, weil die Website-Kopie 1:1 auf den Server übertragen wurde.
Meine Frage, kann ich den Fehler manuell reparieren, oder muss ich alles (Datenbank, Contao Manager, Contao CMS, Files, Module, Templates etc.) noch einmal von Anfang an installieren bzw. hochladen? Vermutlich wird der Datenbankaktualisierungsfehler aber auch nach einer Neuinstallation erneut auftreten.
Update 1:
Gerade ist mir aufgefallen, dass die beiden PHP-Versionen nicht 100%ig übereinstimmen. Auf dem Webserver befindet sich die Version 7.3.28 bei der lokalen Installation (XAMPP) ist es die Version 7.3.26. Könnte dieser minimale Versionsunterschied den o.g. Fehler verursachen? Zwischen .26 und .28 gab es nur ein paar Bug-Fixes (Imap, SOAP, Standard).
Update 2:
Verrückterweise exportiere ich aus XAMPP die Datenbank mit der Kollation utf8mb4_general_ci. Nachdem ich die Datenbank auf dem Webserver importiert habe, wird sie mit der Kollation latin1_swedish_ci deklariert. Vermutlich deshalb versucht das Contao-Installtool die Tabellen inutf8mb4_general_ci zu konvertieren. Beispiel: ALTER TABLE tl_crawl_queue CONVERT TO CHARACTER SET utf8 COLLATE utf8mb4_unicode_ci
Lesezeichen