Row size too large. The maximum row size for the used table type, not counting BLOBs

Problembeschreibung

Beim Installieren des Plugins erscheint folgende Fehlermeldung:

An exception occurred while executing 'ALTER TABLE `s_articles_attributes` ADD `stratus_attr_youtube_id` VARCHAR(500) NULL DEFAULT NULL': SQLSTATE[42000]: 
Syntax error or access violation: 1118 Row size too large. 
The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

Beim Installieren von Plugins und Themes können sogenannte Freitextfelder / Attribute erzeugt werden. Das sind Datenbankfelder, welche in von Shopware vorgegebene Tabellen hinzugefügt werden können.

Zwar kann man theoretisch tausend Spalten haben - diese dürfen aber ingesamt nicht mehr als 65535 haben. Die Freitextfelder sind entweder zu großzügig von Shopware definiert, oder es gibt zu viele große Felder.

Das Problem

Das sogenannte Attributsystem in Shopware setzt beim Anlegen der Felder den Datentyp und deren Größe anhand der ausgewählten Feldtypen (Einfacher Text, Größerer Text, Checkbox, usw.) automatisch.

Die Fehlermeldung besagt nun (vereinfacht), dass die maximale Anzahl dieser Felder erreicht ist, da einige Datenbanken, wie die des Typs InnoDB, eine maximale "row size" von 65535 haben.

Problemlösung:

Überflüssige und nicht benötigte Freitextfelder löschen. Stellt dies keine Option dar, sollte der Hinweis in der Fehlermeldung befolgt werden und die Felder in der Datenbank verkleinert werden. Hier sollte der Hoster zu Rate gezogen werden.

Referenzen:

Last updated