# File lib/foreigner/connection_adapters/sql2003.rb, line 17 def add_foreign_key(from_table, to_table, options = {}) sql = "ALTER TABLE #{quote_table_name(from_table)} #{add_foreign_key_sql(from_table, to_table, options)}" execute(sql) end
# File lib/foreigner/connection_adapters/sql2003.rb, line 22 def add_foreign_key_sql(from_table, to_table, options = {}) column = options[:column] || "#{to_table.to_s.singularize}_id" foreign_key_name = foreign_key_name(from_table, column, options) primary_key = options[:primary_key] || "id" dependency = dependency_sql(options[:dependent]) sql = "ADD CONSTRAINT #{quote_column_name(foreign_key_name)} " + "FOREIGN KEY (#{quote_column_name(column)}) " + "REFERENCES #{quote_table_name(ActiveRecord::Migrator.proper_table_name(to_table))}(#{primary_key})" sql << " #{dependency}" if dependency.present? sql << " #{options[:options]}" if options[:options] sql end
# File lib/foreigner/connection_adapters/sql2003.rb, line 8 def drop_table(*args) options = args.extract_options! if options[:force] disable_referential_integrity { super } else super end end
# File lib/foreigner/connection_adapters/sql2003.rb, line 38 def remove_foreign_key(table, options) execute "ALTER TABLE #{quote_table_name(table)} #{remove_foreign_key_sql(table, options)}" end
# File lib/foreigner/connection_adapters/sql2003.rb, line 42 def remove_foreign_key_sql(table, options) if Hash === options foreign_key_name = foreign_key_name(table, options[:column], options) else foreign_key_name = foreign_key_name(table, "#{options.to_s.singularize}_id") end "DROP CONSTRAINT #{quote_column_name(foreign_key_name)}" end
# File lib/foreigner/connection_adapters/sql2003.rb, line 4 def supports_foreign_keys? true end