如何删除Google Application Engine中未使用的索引?

Tam*_*man 59 indexing google-app-engine

不小心为我的GAE应用程序添加了一个新的过滤器.索引的状态现在是'服务' - 但我根本不需要那个索引,我想删除.我怎样才能做到这一点?

fue*_*sjr 94

这里记录在案.希望有所帮助.

删除未使用的索引

从index.yaml更改或删除索引时,原始索引不会自动从App Engine中删除.这使您有机会在构建新索引时保留较旧版本的应用程序,或者在较新版本发现问题时立即恢复到旧版本.

如果确定不再需要旧索引,可以使用以下命令从App Engine中删除它们:

appcfg.py vacuum_indexes myapp/
Run Code Online (Sandbox Code Playgroud)

此命令将删除本地版本的index.yaml中未提及的应用程序的所有索引.

  • 这个接缝仅适用于Python版本:-(当使用JavaSDK时,缺少vacuum_indexes参数.使用appcfg.py命令也没用,因为Java没有将索引存储在index.yaml中这意味着你必须自己创建这个文件,并尝试按照在Javas xml中定义它们的方式键入所有索引. (2认同)

mjn*_*mjn 26

对于GAE/Java,文档包含以下信息:

删除未使用的索引

...

当您确定不再需要旧索引时,可以使用vacuum_indexes操作从App Engine中删除它们:

./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
Run Code Online (Sandbox Code Playgroud)

此命令将删除本地版本的datastore-indexes.xml和generated/datastore-indexes-auto.xml中未提及的应用程序的所有索引.

  • 警告:对我来说,似乎只考虑了datastore-indexes-auto.xml.这意味着它提供了删除datastore-indexes.xml中提到的索引,声称它们不再被使用(当它们出现时).除此之外,它在删除我的错误索引方面对我有用,我没有像其他答案建议那样创建任何yaml文件. (2认同)

Sri*_*lam 5

Windows Google AppEngine Java中,我们必须使用appcfg.cmd命令删除已部署应用程序的未使用索引.

句法 :

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


Bov*_*ard 5

截至 2019 年 2 月,现在是:

gcloud datastore indexes cleanup index.yaml
Run Code Online (Sandbox Code Playgroud)