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/schema_dumper.rb | |
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/schema_dumper.rb')
-rw-r--r-- | activerecord/lib/active_record/schema_dumper.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/schema_dumper.rb b/activerecord/lib/active_record/schema_dumper.rb index 2f7cc07221..f4b1f536b3 100644 --- a/activerecord/lib/active_record/schema_dumper.rb +++ b/activerecord/lib/active_record/schema_dumper.rb @@ -146,7 +146,11 @@ HEADER raise StandardError, "Unknown type '#{column.sql_type}' for column '#{column.name}'" unless @connection.valid_type?(column.type) next if column.name == pk type, colspec = column_spec(column) - tbl.print " t.#{type} #{column.name.inspect}" + if type.is_a?(Symbol) + tbl.print " t.#{type} #{column.name.inspect}" + else + tbl.print " t.column #{column.name.inspect}, #{type.inspect}" + end tbl.print ", #{format_colspec(colspec)}" if colspec.present? tbl.puts end |