Module: PgMorph::Adapter

Defined in:
lib/pg_morph/adapter.rb

Instance Method Summary collapse

Instance Method Details

#add_polymorphic_foreign_key(parent_table, child_table, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/pg_morph/adapter.rb', line 5

def add_polymorphic_foreign_key(parent_table, child_table, options = {})
  raise_unless_postgres

  polymorphic = PgMorph::Polymorphic.new(parent_table, child_table, options)

  sql =  polymorphic.rename_base_table_sql
  sql << polymorphic.create_base_table_view_sql
  sql << polymorphic.create_proxy_table_sql
  sql << polymorphic.create_before_insert_trigger_fun_sql
  sql << polymorphic.create_before_insert_trigger_sql

  execute(sql)
end

#remove_polymorphic_foreign_key(parent_table, child_table, options = {}) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pg_morph/adapter.rb', line 19

def remove_polymorphic_foreign_key(parent_table, child_table, options = {})
  raise_unless_postgres

  polymorphic = PgMorph::Polymorphic.new(parent_table, child_table, options)

  sql = polymorphic.remove_before_insert_trigger_sql
  sql << polymorphic.remove_proxy_table
  sql << polymorphic.remove_base_table_view_sql
  sql << polymorphic.rename_base_table_back_sql

  execute(sql)
end