4

我正在使用 django non-rel ( http://www.allbuttonspressed.com/projects/django-nonrel ) 并试图删除我的生产数据存储中的所有数据。我正在阅读此处提出的问题如何删除 Google App Engine 中的所有数据存储区?但答案对我不起作用。

这是因为我没有正确执行它还是因为我们使用的是 django,其中图层在将数据保存到数据存储之前对其进行操作?

澄清一下,这些是我为删除所有数据存储数据而采取的步骤。

  1. 我去了程序文件中的谷歌应用引擎文件夹

  2. 在命令行中,输入“remote_shell_api.py yourapp /remote_api”

  3. 当我成功进入时,我尝试导入我的一个应用程序文件夹,但它不允许我导入它,更不用说删除它了。

  4. 当然,键入我的项目的等效项也失败了

from models import Entry  
query = Entry.all()    
entries =query.fetch(1000)    
db.delete(entries)

我还研究了这里的步骤(http://code.google.com/appengine/docs/python/tools/uploadingdata.html),但我真的很困惑。任何人都可以澄清这个过程吗?和普通的google app engine项目有区别吗,如果有,我们怎么使用呢?

4

3 回答 3

3

这里有两个问题:

  1. 为了导入你的包和模块,它们需要在 PYTHONPATH 上。为此,请在设置 PYTHONPATH 变量的情况下运行 shell PYTHONPATH=path_to_your_app remote_api_shell.py yourapp:.
  2. App Engine 的各种 Django 补丁修改了数据存储模型类以将种类名称更改为完全限定的 - 例如,模块“bar”中定义的模型“Foo”在 Django 中将是“bar_Foo”,而 App Engine 自己只是称它为“Foo”。为了应用这个补丁,你需要确保你已经导入了 Django 补丁的适当部分以允许它应用这个猴子补丁。

在相关的说明中,如果您有大量数据,您可能希望使用新的mapreduce 库,它完全在服务器上运行并且会更快。

于 2010-06-25T10:25:03.613 回答
1

您是否尝试过以下操作?

Entry.objects.all().delete()

Entry成为你的 Django 模型。

于 2010-06-25T10:33:40.793 回答
-1

事实证明,django non-rel 使用自己的远程 shell。所以

manage.py 远程外壳

将带您进入应用引擎,您可以在其中删除正确映射到应用引擎数据存储区的数据。感谢所有的帮助家伙!

于 2010-07-16T11:14:46.143 回答