diff options
author | Matthew Draper <matthew@trebex.net> | 2016-12-06 10:01:43 +1030 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-06 10:01:43 +1030 |
commit | 9b6f312734ce4cc727c4818918a146edd2212146 (patch) | |
tree | 9632ffbe1fb8405ab58acd92eb6d832bb16230a9 /activerecord/lib | |
parent | 9e352e38bdd52a06c06d2de88c155b84b9f18ca1 (diff) | |
parent | 974e860172b5e0f05a649211c11c328bc9e94a0c (diff) | |
download | rails-9b6f312734ce4cc727c4818918a146edd2212146.tar.gz rails-9b6f312734ce4cc727c4818918a146edd2212146.tar.bz2 rails-9b6f312734ce4cc727c4818918a146edd2212146.zip |
Merge pull request #27274 from kamipo/primary_key_with_auto_increment_and_bigint
Make `:auto_increment` option works on `:bigint`
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb | 8 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb index 617b5c35bd..4afb4733eb 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb @@ -44,8 +44,12 @@ module ActiveRecord def primary_key(name, type = :primary_key, **options) if type == :uuid options[:default] = options.fetch(:default, "gen_random_uuid()") - elsif options.delete(:auto_increment) == true && type == :integer - type = :serial + elsif options.delete(:auto_increment) == true && %i(integer bigint).include?(type) + type = if type == :bigint || options[:limit] == 8 + :bigserial + else + :serial + end end super diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb index 5d1e8811f8..d0b38dff4c 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb @@ -3,7 +3,7 @@ module ActiveRecord module SQLite3 module ColumnMethods def primary_key(name, type = :primary_key, **options) - if options.delete(:auto_increment) == true && type == :integer + if options.delete(:auto_increment) == true && %i(integer bigint).include?(type) type = :primary_key end |