Il y a plusieurs raisons pour lesquelles vous pouvez obtenir cette erreur :
-
Le cluster PostgreSQL est en cours de récupération (ou est un standby de réplication en continu). Vous pouvez savoir si c'est le cas en exécutant
SELECT pg_is_in_recovery();
-
Le paramètre default_transaction_read_only
est réglé sur on
. Diagnostiquer avec
SHOW default_transaction_read_only;
-
La transaction en cours a été lancée avec
START TRANSACTION READ ONLY;
Vous pouvez savoir si c'est le cas en utilisant le paramètre non documenté
SHOW transaction_read_only;
Si vous comprenez cela, mais que vous vous demandez encore pourquoi vous obtenez cette erreur, puisque vous n'avez pas conscience d'avoir tenté de modifier des données, cela signifierait que l'application que vous utilisez pour vous connecter tente de modifier quelque chose (mais pgAdmin ne devrait pas le faire).
Dans ce cas, consultez le fichier journal pour trouver l'instruction qui provoque l'erreur.