[GAE/Python] Schema 수정하기 #2. 삭제

이번에는 DB에서 항목을 삭제하는 것.

https://cloud.google.com/appengine/articles/update_schema 및

http://sandrylogan.wordpress.com/2010/12/08/delattr/ 사이트 참조

 

class AlbumModel(ndb.Expando):      #ndb.Model -> ndb.Expando로 교체
	artist = ndb.StringProperty()
	title = ndb.StringProperty(indexed=False)
	label = ndb.StringProperty()
	
	user = ndb.UserProperty()
	created_at = ndb.DateTimeProperty(auto_now_add=True)
	updated_at = ndb.DateTimeProperty()
	#last_login = ndb.DateTimeProperty(auto_now=True)

	#Add (2014.12.06)
	version = ndb.IntegerProperty(default=2)

안쓸 항목을 주석처리 한다.

그리고 지난 번에 만들었던 update_schema 파일에서 삭제하는 코드만 넣어주면 된다.

def DeleteSchema():
    albums_query = model.AlbumModel.query()
    for p in albums_query.fetch():	
        delattr(p,'last_login')
        p.put()

class DeleteHandler(webapp2.RequestHandler):
    def get(self):
        deferred.defer(DeleteSchema)
        self.response.out.write('Schema migration successfully initiated.')

그리고 나서 다시 ndb.Model로 바꿔주면 끝

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.