我想在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
答案 0 :(得分:0)
过了一会儿,数据库又变得可写了。我附上了我从heroku支持得到的答案:
当您取消关注主数据库时,关注者是否完全是最新的?如果跟随者有一堆构建的WAL,它有时会使数据库恢复,直到它能够重放所有的WAL。
事实上当你执行pg:info
并拥有一个关注者数据库时,你可以看到一个Behind By
字段,显示你的关注者所提交的提交数量。
我的落后,所以花了一段时间赶上......
将这个添加到heroku postgres文档中可能是一个好主意