2

Google アプリをデプロイしていて、データベースをクリーンアップしたい (そしてクリーンアップする前にダンプしたい)。問題は、「Datastore Read Operations」のクォータを超えたことです。データストアの管理ページからデータベースをダンプしようとしたときに、クォータに達したと確信しています。したがって、私のアプリを実際に「使用」することではありません。

今、アプリ内からすべてのエントリを削除しようとすると、エラーが発生します

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

Datastore Admin を参照しようとすると、何も表示されず、アプリケーション設定でエラーが発生しました。800k のエントリがあるため、手動で行うことはできません。

データベースを放棄したくない、支払いたくない、スペースを解放したい。

誰?

4

2 に答える 2

2

データストアインデックスを更新する必要があるため、削除にはクォータが使用されます。読み取り操作を使用しているため、データストア管理ページを介してデータベースをダンプするには、クォータが必要です。App Engineの世界では、これらの操作は依然としてデータストアを「使用している」と見なされます。

datstoreで行うほとんどすべてのことは、読み取りまたは書き込み操作を使用します。

あなたのオプションはそれを支払うか、あなたが毎日持っている無料の操作の数だけを使うように時間をかけてゆっくりとダンプして削除することです。これを行うには、リモートAPIを使用してスクリプトを記述します。

于 2013-03-21T18:27:01.390 に答える
2

データベースのクォータは毎日補充されるため、単純なコマンドで毎日の cron ジョブを作成できます。

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

数日間実行したままにします。うまくいけば、1日で可能な限り削除し、次の日に残りを実行します.

cron ジョブのほかに、インタラクティブ コンソール、remote_api、またはアプリケーション ダッシュボード メニューの [データベース管理] を介して手動でこれを行うことができます。エンティティを選択してボタン 1 回クリックするだけで削除できます。

于 2013-03-22T00:09:51.190 に答える