module ActiveRecord::ConnectionAdapters::PostgreSQL::ReferentialIntegrity

def disable_referential_integrity # :nodoc:

: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