2012-11-26 4 views
3

일부 인스턴스가 이미 데이터 스토어에 저장되어있는 모델을 업데이트했습니다. 그 속성 중 일부를 삭제했습니다.
데이터 저장소에서 해당 속성을 완전히 삭제할 수 있습니까?
(아니요로 설정하는 것이 아닙니다.)데이터 스토어에서 열 제거

답변

4

모델을 변경 한 후 추가 된 새 행에는 열이 없습니다. 기존 행에는 계속 열이 있습니다. 아래 제공된 기사를 사용하여 기존 데이터에 대한 업데이트를 실행하여 해당 열을 제거 할 수 있어야합니다.

문서 기사 : @ 아벨의 대답에 https://developers.google.com/appengine/articles/update_schema

0

기사는 몇 가지 중요한 인접 개념을 포함하고 있지만, 모든 실제로 열을 제거하는 방법이 명확하지 않다. (일부 높은 수준의 설명없이 코드 예제가있다.)

대답의 전략은 여기에 나를 위해 일한 : 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() 
관련 문제