我已部署了Google应用,我想清理数据库(并在清理之前将其转储)。问题是我克服了“数据存储读操作”的配额。 当我尝试通过数据存储管理页面转储数据库时,我坚信我达到了配额。所以不要真正“使用”我的应用程序。
现在,当我尝试从应用程序中删除所有条目时,我收到错误
com.google.apphosting.api.ApiProxy$OverQuotaException: The API call
datastore_v3.RunQuery() required more quota than is available
如果我尝试浏览到Datastore Admin,则不会显示任何内容,而在应用程序设置中,我收到错误。我有800k条目,所以手动不是一个选项。
我不想放弃我的数据库,我不想付钱,我想设置空间。
任何?
答案 0 :(得分:2)
删除使用配额,因为它需要更新数据存储区索引。 通过数据存储管理页面转储数据库需要配额,因为您正在使用读取操作。 在应用引擎领域,这些操作仍被视为“使用”数据存储区。
您使用datstore执行的任何操作都将使用读取或写入操作。
您的选择是支付费用,或者随着时间的推移缓慢转储和删除,以便您只使用您每天的免费操作数。使用远程API编写脚本来执行此操作。
答案 1 :(得分:2)
您的数据库配额每天都会重新填充,因此您可以使用简单的
编写每日cron作业db.delete(YourModel.all(keys_only=True))
让它运行几天。希望它能在一天内尽可能多地删除,并在接下来的几天内完成其余的工作。
除了cron作业,您可以通过交互式控制台或通过remote_api或通过应用程序仪表板菜单中的数据库管理员手动执行此操作,您可以在其中选择实体并通过单击按钮将其删除。