15

私のアプリでは、モデルのプロパティのいくつかを削除する必要があります。私はこのリンク
をチェックしましたが、最初の問題は、プロパティがにあり、プロパティを削除するためにしばらくの間に切り替える方法がないことです。aをに変更した場合に何が起こるかわからないのです。polymodelexpandopolymodelexpando

では、既存のエンティティからプロパティを削除するにはどうすればよいですか?

すべてStringPropertyをに設定してNoneから、これらをモデルスキーマから削除して、再デプロイすることを考えていました。それらのプロパティの1つは、これを正しくBooleanProperty設定できませんか?!Noneまたはndb.PickleProperty...どうすればそれを削除できますか?

誰かがこれを正しく行う方法を知っていますか?

4

1 に答える 1

41

すべてのエンティティを更新する場合、推奨されるアプローチは、すべてのエンティティを読み書きする map/reduce ジョブです。ただし、持っているデータの量によっては、それだけの価値がない場合があります。map/reduce も無料ではありません。

また、データの小さなサブセットで map/reduce ジョブをテストしてください。エンティティからプロパティを完全に削除するのは、モデル クラスに存在しなくなったとしても、非常に微妙です。最良のアプローチは次のとおりです。

if 'propname' in ent._properties:
  del ent._properties['propname']
  ent.put()
于 2012-10-03T02:32:46.257 に答える