我有 不小心添加了 我的 GAE 应用程序的新过滤器。索引的状态现在是“正在服务”——但是我根本不需要该索引,我想删除它。我怎样才能做到这一点?

有帮助吗?

解决方案

此处记录在案。希望有所帮助。

  

删除未使用的索引

     

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

     

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

appcfg.py vacuum_indexes myapp/
     

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

其他提示

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

语法:

  

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

对于 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并将其放在同一根目录中。事实证明,该工具将为您删除的每个索引提供是/否确认,而不是费力地将您想要保留的索引的索引信息放入该文件中,因此更简单的是指示 ALL应删除索引,并使用确认来保留您想要保留的索引。

indexes:

# AUTOGENERATED

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


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

截至2019年2月,现在是:

gcloud datastore indexes cleanup index.yaml

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

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

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

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

gcloud datastore cleanup-indexes index.yaml

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

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

此命令不再有效

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

这是新命令

您应该在 google cloud console 中运行它们。通常,您可以使用 google cloud console 中的 file upload 功能上传 index.yaml 文件。你的文件转到一个直接叫做 _admin cd 到那里并打电话,

gcloud数据存储区索引清理index.yaml

提示

如果您在 java项目中使用 datastore ,则您有 datastore-indexes.xml 而不是 index.yaml 。如果您不知道在哪里查找,可能会在查找 index.yaml 文件时遇到一些麻烦。

您可以通过查看IDE中的 deploy console 来查找 index.yaml 文件的路径。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top