aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/migration
diff options
context:
space:
mode:
authorSean Griffin <sean@seantheprogrammer.com>2016-12-05 16:16:52 -0500
committerGitHub <noreply@github.com>2016-12-05 16:16:52 -0500
commitd7f55e987849c5a17f9d3152abd4fbacac08a509 (patch)
tree4c6d98ed9f1a35a13ccb2f7be3d903a05a3a6ec8 /activerecord/lib/active_record/migration
parent575212a1ba2e4d170985531402c6e3d27af5a0ea (diff)
parent3e452b12043ecfd983c6132d6eb97eb79db952b7 (diff)
downloadrails-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.rb12
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