diff options
author | Rich <jychen7@users.noreply.github.com> | 2018-08-06 14:00:22 +0800 |
---|---|---|
committer | Rich <jychen7@users.noreply.github.com> | 2018-08-14 21:52:11 +0800 |
commit | 6b9948c85e174b77b4e4e4a904c2b6fcf1083628 (patch) | |
tree | 19b6ae0b19077d92c4f5faf6f1ccaa9f876fea22 /activerecord/lib/active_record/connection_adapters | |
parent | ffc4703f22888dce0394fe0ab524a9e6cdc3c7e5 (diff) | |
download | rails-6b9948c85e174b77b4e4e4a904c2b6fcf1083628.tar.gz rails-6b9948c85e174b77b4e4e4a904c2b6fcf1083628.tar.bz2 rails-6b9948c85e174b77b4e4e4a904c2b6fcf1083628.zip |
Allow `to_table` in `invert_remove_foreign_key`
remove_foreign_key supports
- remove_foreign_key :accounts, :branches
- remove_foreign_key :accounts, to_table: :branches
but the second one is not reversible.
This branch is to fix and allow second one to be reversible.
[Nikolay Epifanov, Rich Chen]
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb | 9 |
1 files changed, 8 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 3be0906f2a..fd9bf48ab5 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb @@ -980,11 +980,18 @@ module ActiveRecord # # remove_foreign_key :accounts, column: :owner_id # + # Removes the foreign key on +accounts.owner_id+. in a reversible manner + # + # remove_foreign_key :accounts, column: :owner_id, to_table: :owners + # # Removes the foreign key named +special_fk_name+ on the +accounts+ table. # # remove_foreign_key :accounts, name: :special_fk_name # - # The +options+ hash accepts the same keys as SchemaStatements#add_foreign_key. + # The +options+ hash accepts the same keys as SchemaStatements#add_foreign_key + # with an addition of + # [<tt>:to_table</tt>] + # The table contains the referenced primary key. def remove_foreign_key(from_table, options_or_to_table = {}) return unless supports_foreign_keys? |