aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2018-12-19 08:38:12 +0900
committerRyuta Kamizono <kamipo@gmail.com>2018-12-19 08:38:12 +0900
commit0fa5b5510c6faefc33ab3715e08b2604195a1063 (patch)
tree563ed97cfd1fc4c4584d3016ac05c27bbf5a2e3a /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
parent5b5319413a611c949cb796351ff42fa0c0299252 (diff)
downloadrails-0fa5b5510c6faefc33ab3715e08b2604195a1063.tar.gz
rails-0fa5b5510c6faefc33ab3715e08b2604195a1063.tar.bz2
rails-0fa5b5510c6faefc33ab3715e08b2604195a1063.zip
Use `utf8mb4` charset for internal tables if the row format `DYNAMIC` by default
The indexing issue on `utf8mb4` columns is resolved since MySQL 5.7.9.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb10
1 files changed, 1 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
index 2d7f34ef24..dbc6614b93 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
@@ -116,14 +116,6 @@ module ActiveRecord
true
end
- def supports_longer_index_key_prefix?
- if mariadb?
- version >= "10.2.2"
- else
- version >= "5.7.9"
- end
- end
-
def get_advisory_lock(lock_name, timeout = 0) # :nodoc:
query_value("SELECT GET_LOCK(#{quote(lock_name.to_s)}, #{timeout})") == 1
end
@@ -250,7 +242,7 @@ module ActiveRecord
execute "CREATE DATABASE #{quote_table_name(name)} DEFAULT COLLATE #{quote_table_name(options[:collation])}"
elsif options[:charset]
execute "CREATE DATABASE #{quote_table_name(name)} DEFAULT CHARACTER SET #{quote_table_name(options[:charset])}"
- elsif supports_longer_index_key_prefix?
+ elsif row_format_dynamic_by_default?
execute "CREATE DATABASE #{quote_table_name(name)} DEFAULT CHARACTER SET `utf8mb4`"
else
raise "Configure a supported :charset and ensure innodb_large_prefix is enabled to support indexes on varchar(255) string columns."