sql >> Databáze >  >> RDS >> PostgreSQL

ActiveRecord::StatementInvalid:PG InFailedSqlTransaction

Žádná z dalších odpovědí nevyřeší hlavní příčinu problému.

Problém je v tom, že když Postgres vyvolá výjimku, otráví budoucí transakce na stejném připojení.

Řešením je vrátit zpět problematickou transakci:

begin
  ActiveRecord...do something...
rescue Exception => e
  puts "SQL error in #{ __method__ }"
  ActiveRecord::Base.connection.execute 'ROLLBACK'

  raise e
end

Viz odkaz.



  1. opatch prereq

  2. Příklad funkce Oracle (vrácené číslo)

  3. Existuje nějaký způsob, jak zajistit, aby se fond připojení JBoss znovu připojil k Oracle, když se připojení pokazí?

  4. Jak najít název omezení v Oracle