2013-02-05 64 views
0

在部署新應用程序版本時,AppEngine上的NDB是否會自動刷新或以其他方式使緩存的項目無效?如果模型被修改,那麼將數據從基於舊模型定義的緩存中提取出來似乎是不好的。AppEngine NDB緩存 - 對於新版本的代碼無效?

(使用NDB前,當我被緩存的所有項目我自己,我會確保使用應用程序版本ID作爲內存緩存鍵的一部分memcached的項目將不能保持版本之間)

回答

1

據我所知NDB沒有按不會自動執行此操作(但我不知道應用程序的新版本是否會獲得新的內存緩存實例,因此我們從來沒有遇到過問題)。但是您始終可以手動刷新儀表板中的memcache。

如果你喜歡實驗,ndb.context中有屬性「_memcache_prefix」,它可能會做你想做的事,但改變它目前尚未官方支持。

另請注意,更改模型不會改變您的數據庫。因此,無論如何,您都會根據db中的舊模型提取數據。它只是適用於你的模型,填補缺失屬性的默認值。