ActiveRecord :: StatementInvalid:PG :: ReadOnlySqlTransaction: - 即使在取消关注后,Heroku数据库仍然只读

时间:2017-09-26 09:09:15

标签: ruby-on-rails postgresql heroku

我想在heroku中将数据库从一个应用程序复制到另一个应用程序。我有一个索引的问题迫使我使用跟随数据库然后取消关注这样做。

我的问题是,现在创建了关注者,取消关注并推广它后,我在尝试写入错误时遇到错误:

ActiveRecord::StatementInvalid: PG::ReadOnlySqlTransaction: ERROR: cannot execute ALTER TABLE in a read-only transaction

另外,当我跑步时:SELECT pg_is_in_recovery();我明白了

我做的是:
heroku addons:create heroku-postgresql:standard-4 –follow MAIN_DB_ADDON_NAME -a app-that-follows

heroku pg:unfollow HEROKU_POSTGRESQL_COLOR_URL -a app-that-follows

heroku pg:promote HEROKU_POSTGRESQL_COLOR_URL -a app-that-follows

知道为什么我会收到此错误,更重要的是,我该如何解决?

谢谢,
URI

1 个答案:

答案 0 :(得分:0)

过了一会儿,数据库又变得可写了。我附上了我从heroku支持得到的答案:

  

当您取消关注主数据库时,关注者是否完全是最新的?如果跟随者有一堆构建的WAL,它有时会使数据库恢复,直到它能够重放所有的WAL。

事实上当你执行pg:info并拥有一个关注者数据库时,你可以看到一个Behind By字段,显示你的关注者所提交的提交数量。

我的落后,所以花了一段时间赶上......

将这个添加到heroku postgres文档中可能是一个好主意