2011년 2월 6일 일요일

app engine bulk deletor

이전 글에서는 command라인에서 appcfg.py를 이용한 bulk loader를 봤는데

이건 appengine에서 사용할 수 있는 bulkdeletor입니다.

쓰다 보시면, app engine에서 제공하는 데이터관리기에서는 10개단위로 밖에 지울 수 없기 때문에

대용량으로 데이터를 지우고 하려면 아래와 같이 사용하시면 될 거 같습니다.

아래 코드 참고해 주시면 됩니다.

class Bulkdelete(webapp.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        try:
            while True:
                q = db.GqlQuery("SELECT __key__ FROM Model")
                assert q.count()
                db.delete(q.fetch(200))
                time.sleep(0.5)
        except Exception,e:
            self.response.out.write(repr(e)+'\n')
            pass

댓글 없음:

댓글 쓰기