2013-03-21 47 views
2

我有一個谷歌應用程序部署,我想清理數據庫(並清除它之前轉儲它)。問題是我克服了「數據存儲讀取操作」的配額。 我堅信當我試圖通過Datastore管理頁面轉儲數據庫時,我達到了配額。所以不是真的「使用」我的應用程序。如果我的配額已過期,如何清除數據存儲區?

現在,當我試圖從應用程序內刪除所有條目我得到一個錯誤

com.google.apphosting.api.ApiProxy$OverQuotaException: The API call 
datastore_v3.RunQuery() required more quota than is available 

如果我嘗試瀏覽到資料儲存庫管理員說,沒有東西顯示出來,並在應用程序設置我得到一個錯誤。我有800K條目,所以手動不是一個選項。

我不想放棄我的分貝,我不想付錢,我想設置的空間自由。

有人嗎?

+0

你想要做什麼比?你不想擦掉它,你不想保留它,你想要什麼? – Linuxios 2013-03-21 14:44:58

回答

2

刪除使用配額,因爲它需要更新數據存儲索引。 通過數據存儲管理頁面轉儲數據庫需要配額,因爲您正在使用讀取操作。 在應用程序引擎領域,這些操作仍被視爲「使用」數據存儲區。

幾乎任何你與datstore做將使用讀取或寫入OPS。

你的選擇是,要麼爲它付出,或傾倒,慢慢地刪除隨着時間的推移,讓你只用你擁有的每一天免費OPS的數量。使用遠程API編寫腳本來執行此操作。

2

您的數據庫限額每天能得到補充,所以你可能會寫與簡單

db.delete(YourModel.all(keys_only=True)) 

每日cron作業,並讓它運行幾天。希望它會在一天內儘可能多地刪除,並在接下來的日子裏完成剩下的工作。

除了cron作業,你可以做到這一點通過人工交互控制檯或通過remote_api的,或通過在應用程序儀表盤菜單,數據庫管理,您可以選擇實體和一個按鈕,點擊刪除它們。