diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-01-22 09:54:14 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-02-04 20:28:14 +0900 |
commit | 605837a61933fc1e94097eea30e659bb9ef516eb (patch) | |
tree | f722b4a3b8b8852f70fe782b27b173cb9dde74b1 /activerecord/lib/active_record/connection_adapters/mysql | |
parent | d13bc5df902a2c82c3096b627830be97acbedf50 (diff) | |
download | rails-605837a61933fc1e94097eea30e659bb9ef516eb.tar.gz rails-605837a61933fc1e94097eea30e659bb9ef516eb.tar.bz2 rails-605837a61933fc1e94097eea30e659bb9ef516eb.zip |
Correctly dump integer-like primary key with default nil
The PR #27384 changed integer-like primary key to be autoincrement
unless an explicit default. This means that integer-like primary key is
restored as autoincrement unless dumping the default nil explicitly.
We should dump integer-like primary key with default nil correctly.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/mysql')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb | 15 |
1 files changed, 5 insertions, 10 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 7a277b8cfd..a06dd0f6b8 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb @@ -1,16 +1,7 @@ module ActiveRecord module ConnectionAdapters module MySQL - module ColumnDumper - def column_spec_for_primary_key(column) - spec = super - if [:integer, :bigint].include?(schema_type(column)) && !column.auto_increment? - spec[:default] ||= schema_default(column) || "nil" - end - spec[:unsigned] = "true" if column.unsigned? - spec - end - + module ColumnDumper # :nodoc: def prepare_column_options(column) spec = super spec[:unsigned] = "true" if column.unsigned? @@ -34,6 +25,10 @@ module ActiveRecord super && column.auto_increment? end + def explicit_primary_key_default?(column) + column.type == :integer && !column.auto_increment? + end + def schema_type(column) if column.sql_type == "tinyblob" :blob |