aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorChris Sinjakli <chris@sinjakli.co.uk>2015-02-02 23:41:12 +0000
committerChris Sinjakli <chris@sinjakli.co.uk>2015-02-03 01:37:29 +0000
commitb8e1f202676b4788c56241b124c401beff9f4014 (patch)
tree84b4ac9dfb0faa885d076270969c8f9f5ec3281d /activerecord/lib/active_record
parent35d77130a2c08f477ce5e7f2e5b28934ad393641 (diff)
downloadrails-b8e1f202676b4788c56241b124c401beff9f4014.tar.gz
rails-b8e1f202676b4788c56241b124c401beff9f4014.tar.bz2
rails-b8e1f202676b4788c56241b124c401beff9f4014.zip
Generate consistent names for foreign keys
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index f905669a24..ed32997d25 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -1,4 +1,6 @@
require 'active_record/migration/join_table'
+require 'active_support/core_ext/string/access'
+require 'digest'
module ActiveRecord
module ConnectionAdapters # :nodoc:
@@ -990,8 +992,10 @@ module ActiveRecord
end
def foreign_key_name(table_name, options) # :nodoc:
+ identifier = "#{table_name}_#{options.fetch(:column)}_fk"
+ hashed_identifier = Digest::SHA256.hexdigest(identifier).first(10)
options.fetch(:name) do
- "fk_rails_#{SecureRandom.hex(5)}"
+ "fk_rails_#{hashed_identifier}"
end
end