Adds a new foreign key to the table. to_table
can be a single
Symbol, or an Array of Symbols. See Foreigner::ConnectionAdapters::AbstractAdapter#add_foreign_key
t.foreign_key(:people)
t.foreign_key(:people, column: :sender_id)
t.foreign_key(:people, column: :sender_id, name: 'sender_foreign_key')
to_table
.t.foreign_key(:people, column: :sender_id, primary_key: :person_id)
# File lib/foreigner/connection_adapters/abstract/schema_definitions.rb, line 30 def foreign_key(to_table, options = {}) @base.add_foreign_key(@table_name, to_table, options) end
Deprecated
# File lib/foreigner/connection_adapters/abstract/schema_definitions.rb, line 54 def references_with_foreign_keys(*args) options = args.extract_options! if fk_options = options.delete(:foreign_key) p ActiveSupport::Deprecation.send(:deprecation_message, caller, ":foreign_key in t.references is deprecated. " "Use t.foreign_key instead") end references_without_foreign_keys(*(args.dup << options)) end
Remove the given foreign key from the table.
change_table :suppliers do |t| t.remove_foreign_key :companies end
change_table :accounts do |t| t.remove_foreign_key column: :branch_id end
change_table :accounts do |t| t.remove_index name: :party_foreign_key end
# File lib/foreigner/connection_adapters/abstract/schema_definitions.rb, line 49 def remove_foreign_key(options) @base.remove_foreign_key(@table_name, options) end