Skip to content

Row size too large / mariadb

Auteur : Philippe Le Van - @plv@framapiaf.org

Date : 30 mars 2021

Problème

Une migration devait ajouter le champs "deleted_at" à la table invoice_specimen. La mise à jour ne s'est pas bien déroulée

1
2
MariaDB [dbname]> ALTER TABLE invoice_specimen ADD deleted_at DATETIME DEFAULT NULL;
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs

Résolution

On a utilisé la page suivante pour résoudre le problème : https://mariadb.com/kb/en/troubleshooting-row-size-too-large-errors-with-innodb/

On a créé une migration contenant la requête :

1
ALTER TABLE invoice_specimen ROW_FORMAT=DYNAMIC;

et on a relancé la requête d'ajout du champs deleted_at sur la table invoice_specimen sur toutes les instances. Ca a résolu le problème.