在部署新的应用程序版本时,AppEngine上的NDB是否会自动刷新缓存项目或使其无效?如果修改了模型,那么将数据从基于旧模型定义的缓存中拉出来似乎是不好的。
(在使用NDB之前,当我自己缓存所有项目时,我会确保使用应用程序版本ID作为memcache密钥的一部分,不会在版本之间保留memcached项目)
答案 0 :(得分:1)
Afaik ndb不会自动执行此操作(但我不知道您的应用程序的新版本是否获得了新的memcache实例,我们从未遇到过这方面的问题)。但您始终可以从仪表板手动刷新内存缓存。
如果您喜欢实验,ndb.context中的属性“_memcache_prefix”可能会执行您想要的操作,但目前尚未正式支持它。
另请注意,更改模型不会改变您的数据库。因此,无论如何,您将从数据库中提取基于旧模型的数据。它只适用于您的模型,填写缺失属性的默认值。