我想将数据库从一个应用程序复制到 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
知道为什么我会收到此错误,更重要的是,我该如何解决它??
Thanks,
Uri
一段时间后,数据库再次变得可写。我附上从 heroku 支持处得到的答案:
当您取消关注主数据库时,关注者是否完全是最新的?如果追随者有一堆已建立的 WAL,它有时会使数据库处于恢复状态,直到它能够重播所有 WAL。
事实上,当你做一个pg:info
并有一个关注者数据库,你可以看到Behind By
字段显示您的关注者落后了多少次提交。
我的已经落后了很多,所以花了一段时间才赶上......
将其添加到 heroku postgres 文档中可能是个好主意
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)