aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
diff options
context:
space:
mode:
authorJeremy Daer <jeremydaer@gmail.com>2015-09-20 12:58:16 -0700
committerJeremy Daer <jeremydaer@gmail.com>2015-09-20 12:58:16 -0700
commit2395b02144cf11f9c9c2429c2085e557b6b342fe (patch)
tree4ad411643210a2e698ef2e9cee1dba2cc803fee3 /activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
parent99c8c8df1a7cfe452177d33cd4ca9a0ee4a05cf4 (diff)
parentfdf371ab0697d43c7eec66418edda9017be9b75b (diff)
downloadrails-2395b02144cf11f9c9c2429c2085e557b6b342fe.tar.gz
rails-2395b02144cf11f9c9c2429c2085e557b6b342fe.tar.bz2
rails-2395b02144cf11f9c9c2429c2085e557b6b342fe.zip
Merge pull request #20009 from kamipo/foreign_keys_in_create
Support for foreign keys in create table
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb21
1 files changed, 8 insertions, 13 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 035637f7ab..220ac08990 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -260,10 +260,6 @@ module ActiveRecord
end
end
- td.foreign_keys.each_pair do |other_table_name, foreign_key_options|
- add_foreign_key(table_name, other_table_name, foreign_key_options)
- end
-
result
end
@@ -792,15 +788,7 @@ module ActiveRecord
def add_foreign_key(from_table, to_table, options = {})
return unless supports_foreign_keys?
- options[:column] ||= foreign_key_column_for(to_table)
-
- options = {
- column: options[:column],
- primary_key: options[:primary_key],
- name: foreign_key_name(from_table, options),
- on_delete: options[:on_delete],
- on_update: options[:on_update]
- }
+ options = foreign_key_options(from_table, to_table, options)
at = create_alter_table from_table
at.add_foreign_key to_table, options
@@ -868,6 +856,13 @@ module ActiveRecord
"#{name.singularize}_id"
end
+ def foreign_key_options(from_table, to_table, options) # :nodoc:
+ options = options.dup
+ options[:column] ||= foreign_key_column_for(to_table)
+ options[:name] ||= foreign_key_name(from_table, options)
+ options
+ end
+
def dump_schema_information #:nodoc:
sm_table = ActiveRecord::Migrator.schema_migrations_table_name