method
foreign_keys
v5.0.0.1 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters
foreign_keys(table_name)public
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb, line 513
def foreign_keys(table_name)
raise ArgumentError unless table_name.present?
schema, name = extract_schema_qualified_name(table_name)
fk_info = select_all SELECT fk.referenced_table_name as 'to_table' ,fk.referenced_column_name as 'primary_key' ,fk.column_name as 'column' ,fk.constraint_name as 'name' FROM information_schema.key_column_usage fk WHERE fk.referenced_column_name is not null AND fk.table_schema = #{quote(schema)} AND fk.table_name = #{quote(name)}.strip_heredoc
create_table_info = create_table_info(table_name)
fk_info.map do |row|
options = {
column: row['column'],
name: row['name'],
primary_key: row['primary_key']
}
options[:on_update] = extract_foreign_key_action(create_table_info, row['name'], "UPDATE")
options[:on_delete] = extract_foreign_key_action(create_table_info, row['name'], "DELETE")
ForeignKeyDefinition.new(table_name, row['to_table'], options)
end
end