diff options
author | Sean Griffin <sean@seantheprogrammer.com> | 2016-12-05 16:16:52 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-05 16:16:52 -0500 |
commit | d7f55e987849c5a17f9d3152abd4fbacac08a509 (patch) | |
tree | 4c6d98ed9f1a35a13ccb2f7be3d903a05a3a6ec8 /activerecord/lib/active_record/migration | |
parent | 575212a1ba2e4d170985531402c6e3d27af5a0ea (diff) | |
parent | 3e452b12043ecfd983c6132d6eb97eb79db952b7 (diff) | |
download | rails-d7f55e987849c5a17f9d3152abd4fbacac08a509.tar.gz rails-d7f55e987849c5a17f9d3152abd4fbacac08a509.tar.bz2 rails-d7f55e987849c5a17f9d3152abd4fbacac08a509.zip |
Merge pull request #26266 from jmccartie/jm/bigint
Change Default Primary Keys to BIGINT
Diffstat (limited to 'activerecord/lib/active_record/migration')
-rw-r--r-- | activerecord/lib/active_record/migration/compatibility.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/migration/compatibility.rb b/activerecord/lib/active_record/migration/compatibility.rb index ae45ac7157..9d3652d63b 100644 --- a/activerecord/lib/active_record/migration/compatibility.rb +++ b/activerecord/lib/active_record/migration/compatibility.rb @@ -104,11 +104,21 @@ module ActiveRecord class V5_0 < V5_1 def create_table(table_name, options = {}) - if ActiveRecord::Base.connection.adapter_name == "PostgreSQL" + connection_name = self.connection.adapter_name + if connection_name == "PostgreSQL" if options[:id] == :uuid && !options[:default] options[:default] = "uuid_generate_v4()" end end + + # Since 5.1 Postgres adapter uses bigserial type for primary + # keys by default and MySQL uses bigint. This compat layer makes old migrations utilize + # serial/int type instead -- the way it used to work before 5.1. + if options[:id].blank? + options[:id] = :integer + options[:auto_increment] = true + end + super end end |