module ActiveRecord::ConnectionAdapters::PostgreSQL::ReferentialIntegrity
def disable_referential_integrity # :nodoc:
:nodoc:
def disable_referential_integrity # :nodoc: original_exception = nil begin transaction(requires_new: true) do execute(tables.collect { |name| "ALTER TABLE #{quote_table_name(name)} DISABLE TRIGGER ALL" }.join(";")) end rescue ActiveRecord::ActiveRecordError => e original_exception = e end begin yield rescue ActiveRecord::InvalidForeignKey => e warn <<-WARNING Rails was not able to disable referential integrity. most likely caused due to missing permissions. eds superuser privileges to disable referential integrity. e: #{original_exception&.message} WARNING raise e end begin transaction(requires_new: true) do execute(tables.collect { |name| "ALTER TABLE #{quote_table_name(name)} ENABLE TRIGGER ALL" }.join(";")) end rescue ActiveRecord::ActiveRecordError end end