MySQL2::Error: BLOB/TEXT column can't have a default value I am trying to run a rails mysql migration on Amazon Elastic Beanstalk.

It fails with this error message:


  Mysql2::Error: BLOB/TEXT column 'description' can't have a default value: ALTER TABLE items ADD description text DEFAULT ''


I found out from this thread that Amazon RDS might be in strict mode. How do I change the mode?
BLOB, TEXT, GEOMETRY, and JSON columns cannot be assigned a default value.
  
  http://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.html


What you are in essence asking -- without realizing it, presumably -- is how to force MySQL to revert to its old, incorrect behavior of ignoring your incorrect table definition and pretending that you really said ALTER TABLE items ADD description text NOT NULL but with the default value missing because that is the only alternative.  So you are left with a nonsensical table definition.

The new, correct behavior is indeed tied to the new recommended @@SQL_MODE defaults.  You're going to make trouble for yourself it your preferred solution is to unfix the server, rather than unbreak your table definition.

I understand that this is "working" for you now, but my point is that it is still in fact broken.  SHOW CREATE TABLE should reveal that your declared default value is in fact not there on your current production server.