diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2019-07-01 12:07:31 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2019-07-05 18:42:41 +0900 |
commit | 52729fb5f24ff96c812327ff045b9a1921d37a7c (patch) | |
tree | fa6c96849ed9d53272d1399411e8884d8083b203 /activerecord/lib/active_record/connection_adapters | |
parent | a59b2305792dd7012a8abc2e4b1a7d9037e8e208 (diff) | |
download | rails-52729fb5f24ff96c812327ff045b9a1921d37a7c.tar.gz rails-52729fb5f24ff96c812327ff045b9a1921d37a7c.tar.bz2 rails-52729fb5f24ff96c812327ff045b9a1921d37a7c.zip |
MySQL: Fix schema dumping `enum` and `set` columns correctly
`enum` and `set` are typed cast as `:string`, but currently the
`:string` type is incorrectly reused for schema dumping.
A cast type on columns is not always the same with `sql_type`, this
fixes schema dumping `enum` and `set` columns to use `sql_type` instead
of `type` correctly.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb b/activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb index 234fb25fdf..bcd300f3db 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb @@ -41,13 +41,15 @@ module ActiveRecord case column.sql_type when /\Atimestamp\b/ :timestamp + when /\A(?:enum|set)\b/ + column.sql_type else super end end def schema_limit(column) - super unless /\A(?:tiny|medium|long)?(?:text|blob)/.match?(column.sql_type) + super unless /\A(?:enum|set|(?:tiny|medium|long)?(?:text|blob))\b/.match?(column.sql_type) end def schema_precision(column) |