Module: Foreigner::Semantics::Sql2003
- Included in:
- ConnectionAdapters::MysqlAdapter, ConnectionAdapters::PostgreSQLAdapter, ConnectionAdapters::SQLite3Adapter
- Defined in:
- lib/foreigner/semantics/sql_2003.rb
Instance Method Summary collapse
- #add_foreign_key(from_table, to_table, options = {}) ⇒ Object
- #foreign_key_definition(to_table, options = {}) ⇒ Object
- #remove_foreign_key(table, options) ⇒ Object
- #supports_foreign_keys? ⇒ Boolean
Instance Method Details
#add_foreign_key(from_table, to_table, options = {}) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/foreigner/semantics/sql_2003.rb', line 17 def add_foreign_key(from_table, to_table, = {}) column = [:column] || "#{to_table.to_s.singularize}_id" foreign_key_name = foreign_key_name(from_table, column, ) primary_key = [:primary_key] || "id" reference = sql_for_reference(to_table, primary_key) dependency = sql_for_dependency([:dependent]) execute(sql_for_add_foreign_key(from_table, foreign_key_name, column, reference, dependency)) end |
#foreign_key_definition(to_table, options = {}) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/foreigner/semantics/sql_2003.rb', line 8 def foreign_key_definition(to_table, = {}) column = [:column] || "#{to_table.to_s.singularize}_id" dependency = sql_for_dependency([:dependent]) sql = "FOREIGN KEY (#{quote_column_name(column)}) REFERENCES #{quote_table_name(to_table)}(id)" sql << " #{dependency}" unless dependency.blank? sql end |
#remove_foreign_key(table, options) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/foreigner/semantics/sql_2003.rb', line 27 def remove_foreign_key(table, ) # If the second argument is table name (String/Symbol) then convert that to the # to the full options hash = { :column => column_name() } if String === || Symbol === execute(sql_for_remove_foreign_key(table, foreign_key_name(table, [:column], ))) end |
#supports_foreign_keys? ⇒ Boolean
4 5 6 |
# File 'lib/foreigner/semantics/sql_2003.rb', line 4 def supports_foreign_keys? true end |