Module: DataMapper::Constraints::DataObjectsAdapter::SQL
- Included in:
- Adapters::DataObjectsAdapter
- Defined in:
- lib/dm-constraints/data_objects_adapter.rb
Instance Method Summary collapse
- #create_constraints_statements(repository_name, model) ⇒ Object
- #destroy_constraints_statements(repository_name, model) ⇒ Object
Instance Method Details
#create_constraints_statements(repository_name, model) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/dm-constraints/data_objects_adapter.rb', line 5 def create_constraints_statements(repository_name, model) model.many_to_one_relationships.map do |relationship| table_name = model.storage_name(repository_name) constraint_name = constraint_name(table_name, relationship.name) next if constraint_exists?(table_name, constraint_name) keys = relationship.child_key.map { |key| property_to_column_name(model.repository(repository_name), key, false) } parent = relationship.parent_model foreign_table = parent.storage_name(repository_name) foreign_keys = parent.key.map { |key| property_to_column_name(parent.repository(repository_name), key, false) } create_constraints_statement(table_name, constraint_name, keys, foreign_table, foreign_keys) end.compact end |
#destroy_constraints_statements(repository_name, model) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/dm-constraints/data_objects_adapter.rb', line 20 def destroy_constraints_statements(repository_name, model) model.many_to_one_relationships.map do |relationship| table_name = model.storage_name(repository_name) constraint_name = constraint_name(table_name, relationship.name) next unless constraint_exists?(table_name, constraint_name) destroy_constraints_statement(table_name, constraint_name) end.compact end |