Sha256: 9bdf554502474d37eafaded78828e77200ccb9c367c8bc04eabef42d42bedaeb
Contents?: true
Size: 1.08 KB
Versions: 1
Compression:
Stored size: 1.08 KB
Contents
module RedHillConsulting::Core::ActiveRecord::ConnectionAdapters # MySQL5-specific behaviors module Mysql5Adapter def reverse_foreign_keys(table_name, name = nil) ans = execute(<<-SQL, name) SELECT constraint_name, table_name, column_name, referenced_table_name, referenced_column_name FROM information_schema.key_column_usage WHERE table_schema = SCHEMA() AND referenced_table_schema = table_schema ORDER BY constraint_name, ordinal_position; SQL results = [] ans.each do | row | results << [row[0], row[1], row[2], row[3], row[4]] end current_foreign_key = nil foreign_keys = [] results.each do |row| next unless table_name.casecmp(row[3]) == 0 if current_foreign_key != row[0] foreign_keys << ForeignKeyDefinition.new(row[0], row[1], [], row[3], []) current_foreign_key = row[0] end foreign_keys.last.column_names << row[2] foreign_keys.last.references_column_names << row[4] end foreign_keys end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
frolic-redhillonrails_core-0.0.1 | lib/red_hill_consulting/core/active_record/connection_adapters/mysql5_adapter.rb |