ActiveRecord :: StatementInvalid:PG :: ReadOnlySqlTransaction: – 即使在取消关注后,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
知道为什么我会收到这个错误,更重要的是, 我该怎么解决 ?
谢谢,
乌里
过了一会儿,数据库又变得可写了。 我附上了我从heroku支持得到的答案:
当您取消关注主数据库时,关注者是否完全是最新的? 如果跟随者有一堆构建的WAL,它有时会使数据库恢复,直到它能够重放所有的WAL。
事实上,当你执行pg:info
并拥有一个关注者数据库时,你可以看到一个Behind By
字段,显示你的追随者落后的提交数量。
我的落后了,所以花了一段时间赶上……
将此添加到heroku postgres文档中可能是个好主意