我的heroku开发计划中有一个Write access revoked
,因为我的数据库中有太多行。
以下是我的结果:
$ heroku pg:info
=== HEROKU_POSTGRESQL_WHITE_URL (DATABASE_URL)
Plan: Dev
Status: available
Connections: 1
PG Version: 9.2.7
Created: 2013-06-21 13:24 UTC
Data Size: 12.0 MB
Tables: 48
Rows: 10564/10000 (Write access revoked) - refreshing
Fork/Follow: Unsupported
Rollback: Unsupported
Region: Europe
从那以后,我删除了一半的行,因为它们是由退化的脚本创建的,而且我在我的开发环境中。我检查了pgadmin并在rails控制台中,看起来实际上删除了行。
如何将write access
恢复到我的数据库?我不想升级,因为我通常不需要它。等了2个小时已经没什么变化了。
我读heroku pg:info
的确没有快速更新,但我能做些什么?
感谢您的支持
答案 0 :(得分:12)
对于Starter层(现在称为Hobby层),后台工作人员会定期计算和更新行数,表计数和数据库大小的统计信息。它们可能会滞后几分钟,但通常不会超过5或10。
在清除数据以达到行限制后,写入权限可能需要5-10分钟才能自然恢复。您通常可以通过运行pg:info
来加快此过程,这会导致刷新(因此您会看到上面的refreshing
)。
预计不会有2个小时。如果你仍然被锁定并且你确定你的行数不足,请在help.heroku.com
打开一张票。答案 1 :(得分:1)
根据Heroku文档:https://devcenter.heroku.com/articles/heroku-postgres-plans#row-limit-enforcement
当您超出业余爱好层行限制并尝试插入时,您将看到Postgres错误:
permission denied for relation <table name>
使用以下机制强制执行业余爱好层数据库计划的行限制:
当hobby-dev数据库达到7,000行,或者业余爱好基本数据库达到700万行时,所有者会收到一封警告电子邮件,说明他们接近行限制。
当数据库超出其行容量时,所有者将收到其他通知。此时,数据库将收到7天的宽限期,以减少记录数量或迁移到另一个计划。
如果7天后行数仍超过计划容量,则将在数据库上撤消INSERT权限。仍然可以从数据库中读取,更新或删除数据。这可确保用户仍然能够使其数据库符合规范,并保留对其数据的访问权。
一旦行数再次符合计划限制,INSERT权限将自动恢复到数据库。请注意,数据库大小是异步检查的,因此可能需要几分钟才能恢复权限。
因此,您很可能必须升级数据库计划