【发布时间】:2017-05-09 08:26:59
【问题描述】:
我最近将实体从一个命名空间移动到另一个命名空间并添加了一个父对象。从那时起,我注意到出现以下错误:
BadRequestError: the id allocated for a new entity was already in use, please try again: app: "p~appid"
name_space: "xyz"
path <
Element {
type: "Challenge"
name: "chal"
}
Element {
type: "Answer"
id: 0x14657000000000
}
>
经过一些研究,我得出的结论是,发生这种情况是因为 id 生成器生成了已经存在的数字 id。由于我将实体移动到另一条路径,因此使用了不同的 id 生成器,并且该生成器不知道现有的 id。
我真的想阻止这种情况,因为这会导致请求不成功。我为旧的db api 找到了许多解决方案,这些解决方案涉及分配麻烦的特定 id,因此生成器知道这些存在。但是我似乎无法为 ndb 模型分配特定的 id。
我尝试使用重试来重试放置模型,但这似乎也无济于事。
有没有办法解决这个问题?
【问题讨论】:
标签: python google-app-engine app-engine-ndb