module PgMorph::Adapter
Public Instance Methods
add_polymorphic_foreign_key(parent_table, child_table, options = {})
click to toggle source
# 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 = {})
click to toggle source
# 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
Private Instance Methods
raise_unless_postgres()
click to toggle source
# File lib/pg_morph/adapter.rb, line 34 def raise_unless_postgres raise PgMorph::Exception.new("This functionality is supported only by PostgreSQL") unless self.is_a?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter) end