我的应用符合GAE标准。
我可以在云控制台中从以以下内容开头的URL中编辑实体:
https://console.cloud.google.com/datastore/entities/query
我将保存实体并刷新页面,并显示新数据。
然后,在我的网站上,转到使用这样的实体ID检索实体的页面
e = Entity.get_by_id(1234)
但是我的网站显示了旧数据!看来这不可能。
我唯一的解决方案是然后使用远程api shell获取实体(显示旧数据),然后进行更新,然后放入实体。然后,我的网站将显示新数据。
通过ID获取实体时,在云控制台中更新实体怎么可能不会出现在生产中?
答案 0 :(得分:3)
尝试这样的事情:
e = Entity.get_by_id(1234, use_cache=False, use_memcache=False)
或
the_key = ndb.Key(Entity, 12345)
the_key.get(use_cache=False, use_memcache=False)
您还可以设置其他参数,例如memcache_timeout
和read_policy
:
https://cloud.google.com/appengine/docs/standard/python/ndb/functions#context_options
答案 1 :(得分:2)
这听起来像是一个缓存问题-正如this page顶部的警告所指出的那样,通过数据存储区控制台更新实体不会更新或刷新缓存。更新后,您应该尝试通过控制台刷新内存缓存,以确保查询直接命中数据存储。