Google App EngineをJavaで使っている場合のindexの削除方法
Deleting unused indexes参照
https://cloud.google.com/appengine/docs/java/config/indexconfig
Macのターミナルからappcfg.shを実行
./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
datastore-indexes.xmlまたはdatastore-indexes-auto.xmlに記載のないものを削除するかどうかひとつずつ聞かれるので返答していく。実行終了後は何もしなくてもデータストアのインデックス管理画面で削除中の表示になり、さらに待つと5分後くらいに消えた。
appcfg.shの場所
/eclipse/plugins/com.google.appengine.eclipse.sdkbundle/appengine-java-sdk/bin
フルパスまたはディレクトリを移動して./appcfg.sh vacuum_indexes myapp/war
myapp/war
の方はプロジェクトのwarフォルダでOK
Permission denied
がでたらchmod +x appcfh.sh
で権限を付与
bin/run_java.sh: Permission denied
がでたら再度chmod +x run_java.sh
実行できると、ブラウザが起動しデータアクセスを許可する画面とコードが出でくるのでコピペで入力
********************************************************
Please enter code:
しばらくすると、どんどん聞かれる
This index is no longer in your datastore-indexes.xml file:
<datastore-index kind="RepObject" ancestor="false">
<property name="ctgId" direction="asc"/>
<property name="divider" direction="asc"/>
<property name="obIndex" direction="desc"/>
</datastore-index>
Are you sure you want to delete this index? (N/y/a): y
すべて答えれば終了
vacuum_indexes completed successfully.
Success.
Cleaning up temporary files for module default...