diff options
author | Yaw Boakye <wheresyaw@gmail.com> | 2016-07-08 03:22:37 +0000 |
---|---|---|
committer | Yaw Boakye <wheresyaw@gmail.com> | 2016-11-22 22:11:18 +0000 |
commit | b915b11cca558eb99b7c2621c4457491d4bdb43b (patch) | |
tree | 647d9ff0be8cce2d56efa5e589e2e28a5bcd9808 /activerecord/lib/active_record/migration | |
parent | 49aa974ec8b15721d53b3b6abea88bd6ba433a68 (diff) | |
download | rails-b915b11cca558eb99b7c2621c4457491d4bdb43b.tar.gz rails-b915b11cca558eb99b7c2621c4457491d4bdb43b.tar.bz2 rails-b915b11cca558eb99b7c2621c4457491d4bdb43b.zip |
For `PostgreSQL >= 9.4` use `gen_random_uuid()`
Since 9.4, PostgreSQL recommends using `pgcrypto`'s `gen_random_uuid()`
to generate version 4 UUIDs instead of the functions in the `uuid-ossp`
extension.
These changes uses the appropriate UUID function depending on the
underlying PostgreSQL server's version, while maintaining
`uuid_generate_v4()` in older migrations.
Diffstat (limited to 'activerecord/lib/active_record/migration')
-rw-r--r-- | activerecord/lib/active_record/migration/compatibility.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/migration/compatibility.rb b/activerecord/lib/active_record/migration/compatibility.rb index 04e538baa5..ae45ac7157 100644 --- a/activerecord/lib/active_record/migration/compatibility.rb +++ b/activerecord/lib/active_record/migration/compatibility.rb @@ -103,6 +103,14 @@ module ActiveRecord end class V5_0 < V5_1 + def create_table(table_name, options = {}) + if ActiveRecord::Base.connection.adapter_name == "PostgreSQL" + if options[:id] == :uuid && !options[:default] + options[:default] = "uuid_generate_v4()" + end + end + super + end end class V4_2 < V5_0 |