EEConf 2024 is around the corner! EEConf 2024
From Slack.
If you’re moving a database from server to server, especially a database from an older site, when you run your import (via phpmyadmin, cli, sequel pro/ace, etc) you can hit an error about a table being too big- typically the exp_channel_data table, very rarely the exp_member_table.
In this case, the existing EE data were being imported into MariaDB:
[ERROR in query 296] 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.
Often you can get past this by setting MySQL strict mode off. Tom suggested the following mysql config:
[mysqld]
innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_file_format_check = ON
innodb_log_file_size = 1G
innodb_strict_mode = 0
In this case, with MariaDB, it was done with an sql command: SET SESSION innodb_strict_mode=OFF;
and the data then imported.
Note, the EE db architecture was changed so that field data are stored in individual tables, rather than in the exp_channel_data table. A newer install won’t have many rows in exp_channel_data. For large tables, you may want to contact support about options for converting data to the new model.
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.