diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2018-11-06 18:08:02 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2018-12-19 08:53:16 +0900 |
commit | a1652c196e57f583cd5c95f7f48eeb6d8c8b285d (patch) | |
tree | 4b80d04bb0aea1c7e1b6140c1238982e3206c82c /activerecord/test/cases/adapter_test.rb | |
parent | 0fa5b5510c6faefc33ab3715e08b2604195a1063 (diff) | |
download | rails-a1652c196e57f583cd5c95f7f48eeb6d8c8b285d.tar.gz rails-a1652c196e57f583cd5c95f7f48eeb6d8c8b285d.tar.bz2 rails-a1652c196e57f583cd5c95f7f48eeb6d8c8b285d.zip |
MySQL: `ROW_FORMAT=DYNAMIC` create table option by default
Since MySQL 5.7.9, the `innodb_default_row_format` option defines the
default row format for InnoDB tables. The default setting is `DYNAMIC`.
The row format is required for indexing on `varchar(255)` with `utf8mb4`
columns.
As long as using MySQL 5.6, CI won't be passed even if MySQL server
setting is properly configured the same as MySQL 5.7
(`innodb_file_per_table = 1`, `innodb_file_format = 'Barracuda'`, and
`innodb_large_prefix = 1`) since InnoDB table is created as the row
format `COMPACT` by default on MySQL 5.6, therefore indexing on string
with `utf8mb4` columns aren't succeeded.
Making `ROW_FORMAT=DYNAMIC` create table option by default for legacy
MySQL version would mitigate the indexing issue on the user side, and it
makes CI would be passed on MySQL 5.6 which is configured properly.
Diffstat (limited to 'activerecord/test/cases/adapter_test.rb')
0 files changed, 0 insertions, 0 deletions