ActiveRecord :: StatementInvalid:PG ::错误:错误:无法在Heroku中的只读事务错误中执行UPDATE

时间:2012-11-04 23:01:47

标签: ruby-on-rails postgresql heroku

我使用关注者在Heroku上创建了一个新数据库。在它提交0后,我取消关注主数据库并将其作为默认值提升。

似乎工作正常,但看起来只读。当我尝试从控制台中删除记录时,我看到了这个错误

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

知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

副本从未真正升级过。见评论。

您可以告诉副本何时跟随主服务器,因为:

SELECT pg_is_in_recovery();

将返回true。这在主服务器中无法返回true,因为主服务器可以恢复的唯一时间是它仍在启动时 - 然后您无法连接到它,因此您无法运行该命令。从9.2和9.3beta开始就是如此;这可能会在将来的版本中发生变化,因此,如果您正在阅读此版本并在较新版本上检查是否有专用功能来检查服务器是否为副本。

答案 1 :(得分:0)

在某些情况下,您需要在活动记录控制台上显式设置写入模式。尝试运行:

readwrite!

这可能与Heroku控制台没有直接关系,但认为我会在这里张贴给需要此特定解决方案的任何人。