aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/mysql
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-01-22 09:54:14 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-02-04 20:28:14 +0900
commit605837a61933fc1e94097eea30e659bb9ef516eb (patch)
treef722b4a3b8b8852f70fe782b27b173cb9dde74b1 /activerecord/lib/active_record/connection_adapters/mysql
parentd13bc5df902a2c82c3096b627830be97acbedf50 (diff)
downloadrails-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.rb15
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