2012-11-04 41 views
4

我使用跟隨者在Heroku上創建了一個新數據庫。之後它是0提交後我取消關注主數據庫並將其作爲默認提升。ActiveRecord :: StatementInvalid:PG :: Error:錯誤:無法在Heroku的只讀事務錯誤中執行UPDATE

似乎工作正常,但看起來只能讀取。當我嘗試從控制檯現在發現一個記錄時,我看到這個錯誤

ActiveRecord::StatementInvalid: PG::Error: ERROR: cannot execute UPDATE in a read-only transaction 

任何想法如何解決這個問題?

+0

我會說你的副本實際上並沒有得到提升。什麼'SELECT pg_is_in_recovery();'報告? –

+0

我沒有釋放跟隨者。現在似乎工作正常。 – Martin

+0

追隨者總是隻讀。 – Galen

回答

3

副本從未實際得到提升。看評論。

SELECT pg_is_in_recovery(); 

將返回true:

一個副本之後的主服務器的時候,因爲你可以告訴。這不能在主服務器中返回true,因爲主服務器只能恢復的時間是它仍在啓動時 - 然後您無法連接到它,因此您無法運行該命令。從9.2和9.3beta這是真的;這可能會在將來的版本中發生變化,所以如果您正在閱讀本文並在較新的版本上檢查專用函數以檢查服務器是否是副本。

相關問題