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

ActiveRecord::StatementInvalid:PG::Error:ERROR:nelze provést UPDATE při chybě transakce pouze pro čtení v Heroku

Replika ve skutečnosti nikdy nebyla povýšena. Viz komentáře.

Když replika následuje hlavní server, můžete zjistit, že:

SELECT pg_is_in_recovery();

vrátí true. Toto nemůže vrátit hodnotu true na hlavním serveru, protože jediný případ, kdy může být hlavní server v obnově, je, když se stále spouští - a pak se k němu nemůžete připojit, takže nemůžete spustit tento příkaz. To platí pro 9.2 a 9.3beta; to se může v budoucích verzích změnit, takže pokud čtete toto a na novější verzi, zkontrolujte, zda nemáte vyhrazenou funkci pro kontrolu, zda je server replikou.



  1. SQL Query:pořadí podle délky znaků?

  2. Oracle:Hledání sloupců pouze s hodnotami null

  3. Kopírovat řádek a změnit malou podmnožinu sloupců?

  4. Oracle:Proč Oracle vytváří vektor opakování změn popisující změnu bloku zpět, když uživatel vydá pokyn ke změně položky dat