Mar*_*tin 7 postgresql ruby-on-rails heroku
我使用关注者在Heroku上创建了一个新数据库.在它提交0后,我取消关注主数据库并将其作为默认值提升.
似乎工作正常,但看起来只读.当我尝试从控制台中删除记录时,我看到了这个错误
ActiveRecord::StatementInvalid: PG::Error: ERROR: cannot execute UPDATE in a read-only transaction
Run Code Online (Sandbox Code Playgroud)
不知道怎么解决这个问题?
复制品实际上从未得到晋升。看评论。
您可以判断副本何时跟随主服务器,因为:
SELECT pg_is_in_recovery();
Run Code Online (Sandbox Code Playgroud)
将返回 true。这在主服务器中无法返回 true,因为主服务器唯一可以恢复的时间是当它仍在启动时 - 然后您无法连接到它,因此您无法运行该命令。从 9.2 和 9.3beta 开始都是如此;这在未来的版本中可能会发生变化,因此,如果您正在阅读本文并在较新的版本中检查是否有专用函数来检查服务器是否是副本。