Module: UsesguidMigrations::ActiveRecordExtensions::ConnectionAdapters::MysqlAdapter
- Defined in:
- lib/usesguid_migrations/active_record_extensions/connection_adapters/mysql_adapter.rb
Instance Method Summary collapse
Instance Method Details
#foreign_keys(table_name, name = nil) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/usesguid_migrations/active_record_extensions/connection_adapters/mysql_adapter.rb', line 23 def foreign_keys( table_name, name=nil ) results = execute( "SHOW CREATE TABLE `#{table_name}`", name ) null_foreign_keys = [] not_null_foreign_keys = [] primary_keys = [] results.each do |row| row[1].each do |line| null_foreign_keys << $1 if line =~ /^ [`"](.+?)[`"] varchar\(22\) character set latin1 collate latin1_bin default NULL?,?$/ not_null_foreign_keys << $1 if line =~ /^ [`"](.+?)[`"] varchar\(22\) character set latin1 collate latin1_bin NOT NULL?,?$/ primary_keys << $1 if line =~ /^ PRIMARY KEY \([`"](.+?)[`"]\)$/ primary_keys << $1 if line =~ /^ PRIMARY KEY \([`"](.+?)[`"]\),$/ end end return null_foreign_keys - primary_keys, not_null_foreign_keys - primary_keys end |
#primary_key_name(table_name, name = nil) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/usesguid_migrations/active_record_extensions/connection_adapters/mysql_adapter.rb', line 6 def primary_key_name( table_name, name=nil ) results = execute( "SHOW CREATE TABLE `#{table_name}`", name ) keys = [] primary_key = nil results.each do |row| row[1].each do |line| keys << $1 if line =~ /^ [`"](.+?)[`"] varchar\(22\) character set latin1 collate latin1_bin NOT NULL?,?$/ primary_key = $1 if line =~ /^ PRIMARY KEY \([`"](.+?)[`"]\)$/ primary_key = $1 if line =~ /^ PRIMARY KEY \([`"](.+?)[`"]\),$/ primary_key = $1 if line =~ /^ PRIMARY KEY \([`"](.+?)[`"]\), $/ end end return keys.include?( primary_key ) ? primary_key : nil end |