Trying to publish changes in one of 3 locales of an entry gives error:

Internal Server Error CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1030 Got error 139 from storage engine

It is basically a row size problem.

The entry has many fields and there are 3 locales. It is possible to save a draft of the changes made.

What i tried:

On staging server I have solved the problem with changing the database config


innodb_file_format = Barracuda

and then changing row format of some tables (entries, content and fields) to compressed.

This is not possible on live production server since host does not allow it. And also it probably is not the best solution.

I also tried to change the table engine to MyISAM but this gave error:

SQL Error [1217] [23000]: Cannot delete or update a parent row: a foreign key constraint fails

I hope there is a simple solution to all this.
Thank you for your help, I am a bit green in all this, my background is in design.

1 Answer 1


I also tried to change the table engine to MyISAM

That won't work because Craft relies on foreign key constraints that InnoDB provides and MyISAM doesn't support.

There might be some server config/changes you can do to address the issue, but because you're bumping into MySQL/InnoDB limitations, I'd try to address this from an information architecture point of view.

i.e. You've likely got a lot of fields that are probably ending up as text data types in MySQL. Can you change those to fields that use varchar instead? Can you logically break up the fields so they make sense inside of a Matrix field? Matrix fields get their content stored in their own table outside of the main craft_content table, which is where you're likely running into that error.

  • As you suggested I have changed the architecture of the fields and broke one single structure to more and called for content from all of them. Now it works. Thank you.
    – md333
    Commented Jan 14, 2018 at 23:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.