web-dev-qa-db-ja.com

Google Application Engineで未使用のインデックスを削除するにはどうすればよいですか?

私は 誤って追加 私のGAEアプリケーションに新しいフィルターを追加しました。インデックスのステータスは現在「配信中」ですが、そのインデックスはまったく必要ないため、削除したいと思います。どうやってやるの?

59
Tamas Kalman

文書化されています ここ 。お役に立てば幸いです。

未使用のインデックスの削除

Index.yamlからインデックスを変更または削除しても、元のインデックスはApp Engineから自動的に削除されません。これにより、新しいインデックスの作成中に古いバージョンのアプリを実行したままにするか、新しいバージョンで問題が発見された場合はすぐに古いバージョンに戻すことができます。

古いインデックスが不要になったことが確認できたら、次のコマンドを使用してApp Engineから削除できます。

appcfg.py vacuum_indexes myapp/

このコマンドは、ローカルバージョンのindex.yamlに記載されていないアプリのすべてのインデックスを削除します。

94
fuentesjr

GAE/Javaの場合、ドキュメントには この情報 が含まれます:

未使用のインデックスの削除

...

古いインデックスが不要であることが確実な場合は、vacuum_indexesアクションを使用してApp Engineから削除できます。

./appengine-Java-sdk/bin/appcfg.sh vacuum_indexes myapp/war

このコマンドは、ローカルバージョンのdatastore-indexes.xmlおよびgenerated/datastore-indexes-auto.xmlに記載されていないアプリのすべてのインデックスを削除します。

26
mjn

に Windows Google AppEngine Java、使用する必要があります appcfg.cmd へのコマンド 未使用のインデックスを削除する デプロイされたアプリケーションの。

構文:

appengine-Java-sdk-path\bin\appcfg.cmd vacuum_indexes project-root-path\poject-name\war \

5
Sridhar Nalam

2019年2月現在、次のとおりです。

gcloud datastore indexes cleanup index.yaml
4
Bovard

Gae-Javaの場合、JochenJungが述べたように、「vacuum_indexes」ツールは機能しますが、pythonプロジェクトを次のようにエミュレートする必要があります。

真空ツールは、*。appspot.comをポイントしたときにのみ機能するように見え、ローカル開発者では機能しないことに注意してください。環境。

  • アプリのapp.yamlを作成し、これを/ myapp /ルートディレクトリに少なくとも配置します。

    application: myproj
    version: 4
    runtime: python
    api_version: 1

ここで、「version」はアプリのバージョン、「myproj」はプロジェクトのGAE名です。

  • index.yamlを作成し、同じルートディレクトリに配置します。保持したいインデックスのインデックス情報を手間をかけてそのファイルに入れる代わりに、ツールが削除するすべてのインデックスに対してyes/no確認を提供することが判明しているため、ALLを示すだけの方が簡単です。インデックスを削除し、確認を使用して、保持するインデックスを保持する必要があります。

indexes:

# AUTOGENERATED

次に、上記のコマンドを実行します。


  /appcfg.py vacuum_indexes /path/to/myproj/
4
larham1

mavenを使用している場合mvn appengine:vacuum_indexes。する必要がない mvn appengine:update、コマンドはリモートサーバーを更新します。

Mavenコマンドの完全なリスト here

3
Marc M.

Javaを使用するWindowsでは、このコマンドは私にとってはうまくいきました:

appcfg.cmd vacuum_indexes C:\Users\Name\AndroidStudioProjects\Project\backend\src\main\webapp\

注:datastore-indexes.xmlwebappフォルダにあります(これらのインデックスは使用されません)。

2
Boo

現在のバージョンのgcloudでは、次のように簡単に実行できます。

gcloud datastore cleanup-indexes index.yaml

これは、appcfg.cmd [...]を呼び出すよりも直感的です。

1
Irondwarf

gcloud datastore cleanup-indexes /path/to/file/index.yaml

このコマンド機能しなくなりました

gcloud datastore indexes cleanup /path/to/index.yaml

これは新しいコマンドです。

google cloud consoleで実行する必要があります。通常、index.yamlfile upload機能を使用してgoogle cloud consoleファイルをアップロードできます。あなたのファイルは直接呼び出された_adminに行き、そこにcdして呼び出し、

gcloud datastore indexes cleanup index.yaml

ヒント

Javaプロジェクトdatastoreを使用している場合は、datastore-indexes.xmlではなくindex.yamlになります。どこを見ればよいのかわからない場合、index.yamlファイルを見つけるのに問題が発生する可能性があります。

iDEでindex.yamlを見るだけで、deploy consoleファイルのパスを見つけることができます。

0
Lakshan S