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

时间:2009-05-02 00:45:11

标签: google-app-engine indexing

我{GA}应用程序的accidentally added新过滤器。索引的状态现在是'服务' - 但我根本不需要该索引,我想删除。我怎么能这样做?

9 个答案:

答案 0 :(得分:95)

记录在案here。希望有所帮助。

  

删除未使用的索引

     

更改或删除索引时   来自index.yaml,原始索引是   未从App Engine中删除   自动。这给你了   离开旧版本的机会   应用程序运行时新索引   正在建造,或恢复到   如果有问题,请立即使用旧版本   发现版本较新。

     

当您确定旧索引是   不再需要,你可以删除它们   来自App Engine使用以下内容   命令:

appcfg.py vacuum_indexes myapp/
     

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

答案 1 :(得分:26)

对于GAE / Java,文档包括this information

  

删除未使用的索引

     

...

     

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

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

此命令删除未提及的应用程序的所有索引   datastore-indexes.xml和。的本地版本   生成/数据存储区的索引-auto.xml。

答案 2 :(得分:5)

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

语法:

  

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

答案 3 :(得分:4)

对于gae-java,正如JochenJung所说,“vacuum_indexes”工具可以工作,但你必须以下列方式模拟python项目:

请注意,真空工具似乎只在指向* .appspot.com时才起作用,而不是本地开发。环境。

  • 为您的应用创建app.yaml,并将其放在/ myapp / root目录中,最低限度:

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

其中“version”是您的应用版本,“myproj”是您项目的GAE名称。

  • 创建一个index.yaml并将其放在同一根目录中。事实证明,该工具将为您删除的每个索引提供是/否确认,而不是费力地将索引信息放入该文件中,因此更简单地指示ALL应删除索引,并使用确认来保留您要保留的索引。

indexes:

# AUTOGENERATED

然后运行如上所示的命令,


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

答案 4 :(得分:3)

如果您使用 maven mvn appengine:vacuum_indexes。无需mvn appengine:update,该命令会更新远程服务器。

maven命令的完整列表here

答案 5 :(得分:3)

截至2019年2月,现在是:

gcloud datastore indexes cleanup index.yaml

答案 6 :(得分:2)

在使用Java的Windows上,此命令对我有用:

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

注意:确保datastore-indexes.xml文件夹中有webapp(这些索引将不受影响)。

答案 7 :(得分:1)

使用当前版本的gcloud,您只需执行以下操作:

gcloud datastore cleanup-indexes index.yaml

比调用appcfg.cmd [...]更直观。

答案 8 :(得分:0)

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

此命令不再有效

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

这是新命令

您应该在google cloud console中运行它们。通常,您可以使用index.yaml中的file 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文件的路径。