PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

ActiveRecord::StatementInvalid:PG::Error:FEHLER:UPDATE kann bei einem schreibgeschützten Transaktionsfehler in Heroku nicht ausgeführt werden

Die Replik wurde nie wirklich beworben. Siehe Kommentare.

Sie können erkennen, wann ein Replikat einem Master-Server folgt, weil:

SELECT pg_is_in_recovery();

wird wahr zurückgeben. Dies kann auf einem Masterserver nicht wahr zurückgeben, da sich ein Masterserver nur dann in der Wiederherstellung befinden kann, wenn er noch gestartet wird – und dann können Sie keine Verbindung zu ihm herstellen, sodass Sie diesen Befehl nicht ausführen können. Das gilt ab 9.2 und 9.3beta; Dies kann sich in zukünftigen Versionen ändern. Wenn Sie dies also lesen und eine neuere Version verwenden, suchen Sie nach einer speziellen Funktion zum Überprüfen, ob der Server eine Kopie ist.