4

我正在使用django non-rel(http://www.allbuttonspressed.com/projects/django-nonrel),並試圖刪除我產品的數據存儲區中的所有數據。我正在閱讀這裏提出的問題How to delete all datastore in Google App Engine?,但答案並不適合我。Google App Engine的remote_api:刪除django nonrel中的所有數據

這是因爲我沒有正確地做,或者因爲我們使用的django圖層操縱數據之前被保存到數據存儲?

爲了澄清,這些是我採取的刪除所有數據存儲數據的步驟。

  1. 我去了Google App Engine上的文件夾中的程序文​​件

  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)的步驟,但我真的很困惑。任何人都可以澄清這個過程嗎?它是否與正常的谷歌應用程序引擎項目不同,如果是這樣,我們如何使用它?

回答

-1

事實證明,django non-rel使用自己的遠程shell。所以

manage.py遠程shell

將帶你進入應用程序引擎,你可以刪除正確映射到App Engine的數據存儲你的數據。感謝所有的幫助傢伙!

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 library代替,這完全在服務器上運行,並會快很多。

1

您是否嘗試過以下方法?

Entry.objects.all().delete() 

Entry是你的Django模型。

相關問題