我正在使用 django non-rel ( http://www.allbuttonspressed.com/projects/django-nonrel ) 并试图删除我的生产数据存储中的所有数据。我正在阅读此处提出的问题 How to delete all datastore in Google App Engine?但答案对我不起作用。
这是因为我做的不正确还是因为我们使用的是 django,其中层在保存到数据存储之前处理数据?
澄清一下,这些是我为删除所有数据存储区数据而采取的步骤。
我转到程序文件中的 google app engine 文件夹
在命令行输入“remote_shell_api.py yourapp/remote_api”
当我成功进入后,我尝试导入我的应用程序文件夹之一,但它不允许我导入它,更不用说删除它了。
当然,输入我的项目的等效项也失败了
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 项目有什么不同吗?如果有,我们如何使用它?
最佳答案
这里有两个问题:
- 为了导入您的包和模块,它们需要位于 PYTHONPATH 中。为此,运行带有 PYTHONPATH 变量集的 shell:
PYTHONPATH=path_to_your_app remote_api_shell.py yourapp
。 - App Engine 的各种 Django 补丁修改了数据存储模型类以将种类名称更改为完全限定的 - 例如,模块“bar”中定义的模型“Foo”在 Django 中将是“bar_Foo”,而 App Engine它自己只是称它为“Foo”。为了应用此补丁,您需要确保已导入 Django 补丁的适当部分以允许它应用此 monkeypatch。
相关说明,如果您有大量数据,您可能需要使用新的 mapreduce library相反,它完全在服务器上运行并且速度会快得多。
关于google-app-engine - Google App Engine 远程 API : Deleting all data in django nonrel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112294/