3

一部のインスタンスがすでにデータストアに保存されているモデルを更新しました。そのプロパティのいくつかを削除しました。
これらのプロパティをデータストアから完全に削除することは可能ですか?
(Noneに設定するという意味ではありません)

4

2 に答える 2

4

モデルを変更した後、追加された新しい行には列がありません。既存の行には引き続き列があります。以下の記事を使用して、既存のデータに対して更新を実行し、その列を削除できるはずです。

ドキュメントの記事:https ://developers.google.com/appengine/articles/update_schema

于 2012-11-26T15:18:46.897 に答える
1

@abelの回答の記事には、隣接する重要な概念がいくつか含まれていますが、実際に列を削除する方法についてはそれほど明確ではありません。(いくつかの高レベルの説明があり、コード例はありません。)

ここでの答えの戦略は私のために働いた:https ://stackoverflow.com/a/12701172/7470370

より完全な例...

from google.appengine.ext import ndb

class Model_1(ndb.Model):
    propToKeep = ndb.StringProperty()
    propToDelete = ndb.StringProperty()

entities = Model_1.query().fetch() # get all records
    for entity in entities:
        if 'propToDelete' in entity._properties:
            del entity._properties['propToDelete']
            entity.put()
于 2017-10-26T14:45:45.263 に答える