aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2019-02-16 14:56:29 +0900
committerRyuta Kamizono <kamipo@gmail.com>2019-02-16 14:56:29 +0900
commit6572175d4decf22dd2116c873647ddacb7e48b85 (patch)
treee72d0973cf799738e896d879ad1fcd84d0b855a5
parent850e6aaad9c276d1b84708448221eb3becf0b917 (diff)
downloadrails-6572175d4decf22dd2116c873647ddacb7e48b85.tar.gz
rails-6572175d4decf22dd2116c873647ddacb7e48b85.tar.bz2
rails-6572175d4decf22dd2116c873647ddacb7e48b85.zip
Refactor `remove_foreign_key` to delete the foreign key before `alter_table`
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb6
1 files changed, 2 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb
index 0a637d81fa..bd649451d6 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb
@@ -74,10 +74,8 @@ module ActiveRecord
fk_to_table == table && options.all? { |k, v| fk.options[k].to_s == v.to_s }
end || raise(ArgumentError, "Table '#{from_table}' has no foreign key for #{to_table}")
- alter_table(from_table, foreign_keys) do |definition|
- fk_to_table = strip_table_name_prefix_and_suffix(fkey.to_table)
- definition.foreign_keys.delete([fk_to_table, fkey.options])
- end
+ foreign_keys.delete(fkey)
+ alter_table(from_table, foreign_keys)
end
def create_schema_dumper(options)