如果实体种类/属性已存在于GAE dev服务器中,则只能添加它们

时间:2014-08-05 21:32:49

标签: google-app-engine google-cloud-datastore

我不确定这是一个错误,是设计的(虽然我看不到这个好处),或者我只是被愚蠢。

使用Google App Engine开发服务器v1.9.8,我只能添加一个数据存储区实体,如果已存在同类型的另一个。否则,下拉列表实际上不会显示实体类型。

此外,即使在确实存在的实体类型上,如果该属性在该类型的至少一个其他现有实体上不为空,则我只能更改属性(或者如果它是新的则创建它们)。

这很烦人,因为为了测试我必须先做的事情:

entityKind(every=Possible, attribute=Set, to=Something, even=If,
    i=Dont, yet=Need).put()

刷新,然后记得在再次刷新之前删除此行,以避免重复数据存储中的条目。

但请注意,如果我碰巧只使用不使用每个属性的实体进行测试,我必须保留这个虚拟实体,以防万一我以后想要其他属性。

必须,当然,在这里遗漏了什么?我无法相信没有像这样的方法来创建数据存储区实体而不会乱砍它?

2 个答案:

答案 0 :(得分:2)

您正在讨论使用Dev服务器手动创建实体。在使用GAE的过去4年里,我希望这可能有一两次,但我从来没有需要这个功能。您可以在代码中创建实体,如果某些内容不起作用,则可以调试代码。

您可以(并且应该)编写单元测试来测试您的代码。正确的单元测试会创建一个实体,保存它,读取它,验证所有属性是否正确,删除它,验证它是否已被删除。没有用于剪切和粘贴(或注释/取消注释)的代码,并且在测试完成后没有剩下测试实体。

答案 1 :(得分:2)

您的错误在于将Web控制台视为工作流程的一部分。绝对不是,也不是。它是一个模糊的黑客工具,允许您对数据进行一些基本操作,而不是其他任何操作。

通过代码与数据存储区交互,并离开Web控制台进行简单验证。