0

AppEngine 上の NDB は、アプリケーションの新しいバージョンがデプロイされたときに、キャッシュされた項目を自動的にフラッシュまたは無効にしますか? モデルが変更された場合、古いモデル定義に基づくキャッシュからデータを引き出すのは良くないようです。

(NDB を使用する前は、すべてのアイテムを自分でキャッシュしていたときに、アプリケーションのバージョン ID を memcache キーの一部として使用して、memcached アイテムがバージョン間で保持されないようにしていました)

4

1 に答える 1

1

Afaik ndb は自動的にそれを行いません (ただし、アプリの新しいバージョンが新しい memcache インスタンスを取得するかどうかはわかりませんが、問題はありませんでした)。ただし、いつでもダッシュボードから memcache を手動でフラッシュできます。

実験が好きなら、ndb.context にプロパティ "_memcache_prefix" があります。これはおそらくあなたが望むことを行いますが、それを変更することは現在公式にはサポートされていません。

また、モデルを変更してもデータベースは変更されないことに注意してください。とにかく、データベースから古いモデルに基づいてデータを取得します。モデルに適用され、欠落しているプロパティのデフォルト値が埋められます。

于 2013-02-06T09:28:07.533 に答える