如何使用GQL删除记录?

J.O*_*sen 8 python gql

我需要迭代并删除我的数据存储区的所有记录.我正在使用Google App引擎启动器在本地主机上测试它.怎么做?

当我试图以这种方式删除Person模型中的所有recors时:

 qObj = Person.all()
 db.delete(qObj)
Run Code Online (Sandbox Code Playgroud)

我收到错误BadValueError: Property y must be a str or unicode instance, not a long 我猜模型数据类型存在冲突.

class Person(db.Model):
    name = db.StringProperty()
    x = db.StringProperty()
    y = db.StringProperty()
    group = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

该领域y = db.StringProperty()以前是y = db.IntegerProperty().此时我需要刷新所有数据库记录.我怎样才能做到这一点?

是否有机会删除存储所有数据库记录的本地文件?

cha*_*lax 9

GQL语言只能用于检索实体或密钥(参见http://code.google.com/appengine/docs/python/datastore/gqlreference.html)

你必须这样做:

persons = Person.all()

for p in persons:
    p.delete()
Run Code Online (Sandbox Code Playgroud)

关于错误BadValueError: Property y must be a str or unicode instance, not a long,您必须修改数据库中的所有数据(从整数到字符串)以解决冲突.

您似乎想要删除所有内容,因此另一种解决方案是只访问数据存储区管理页面 - http:// localhost:8080/_ah/admin on localhost或https://appengine.google.com/ - 和删除一切.

您可能会发现这很有用:http://code.google.com/appengine/articles/update_schema.html