sql >> Base de Datos >  >> RDS >> PostgreSQL

ActiveRecord::StatementInvalid:PG::Error:ERROR:no se puede ejecutar UPDATE en un error de transacción de solo lectura en Heroku

La réplica nunca fue promocionada. Ver comentarios.

Puede saber cuándo una réplica sigue a un servidor maestro porque:

SELECT pg_is_in_recovery();

volverá verdadero. Esto no puede volverse verdadero en un servidor maestro porque la única vez que un servidor maestro puede estar en recuperación es cuando aún se está iniciando, y luego no puede conectarse a él, por lo que no puede ejecutar ese comando. Eso es cierto a partir de 9.2 y 9.3beta; esto puede cambiar en futuras versiones, por lo que si está leyendo esto y en una versión más reciente, busque una función dedicada para verificar si el servidor es una réplica.