25006: read_only_sql_transaction
PostgreSQLNe demek?
Salt-okunur bir transaction içinde veri değiştiren bir komut (INSERT/UPDATE/DELETE/DDL) çalıştırılmaya çalışıldı. Transaction yalnızca okuma yapabilecek şekilde ayarlanmış. Class 25 (invalid_transaction_state) sınıfındadır.
Neden olur?
SET TRANSACTION READ ONLY veya default_transaction_read_only=on ayarı; ya da en yaygın olarak bir okuma replikasına (hot standby / streaming replica) yazma denemesi. Standby sunucular tanımı gereği salt-okunurdur.
Nasıl çözülür?
Yazma işlemlerini primary sunucuya yönlendirin; okuma/yazma ayrımı yapan bağlantı yönlendirmenizi kontrol edin. Yanlışlıkla ayarlandıysa: SET TRANSACTION READ WRITE; veya sunucu genelinde default_transaction_read_only=off. Uygulamanızda okuma-yazma trafiğini doğru düğüme gönderdiğinizden emin olun.