我在AppEngine中有一个Python应用程序。我正在使用High Replication数据存储区。
这是我的问题:
我有一个没有父母保存的实体(简称为Person),它是AppEngine条款中的根实体。
在保存我的实体之前,我没有设置key_name,因为我想要DataStore分配的数字ID。一些代码:
p = Person(name='Juan Roman Riquelme')
p.put()
p.key().id() # the numeric ID
问题是ID不是连续的。每当我更新我的应用程序(appcfg.py update。)时,ID都会在接下来的几千个中开始。我的意思是,我第一次更新我的应用程序,ID 1,2,3等。下一次是:1001,1002,1003等等,其中包括:2001,2002等。
发生了什么事?我该怎么做让他们连续?
谢谢!
答案 0 :(得分:3)
为什么你需要他们连续?
App Engine数据存储区不会将ID指定为连续的。
如果您想要连续的ID,您必须自己分配ID。不要忘记使用allocate_id_range(http://code.google.com/appengine/docs/python/datastore/functions.html),以便应用引擎不会自动分配已有的ID。