我{GA}应用程序的accidentally added新过滤器。索引的状态现在是'服务' - 但我根本不需要该索引,我想删除。我怎么能这样做?
答案 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时才起作用,而不是本地开发。环境。
application: myproj
version: 4
runtime: python
api_version: 1
其中“version”是您的应用版本,“myproj”是您项目的GAE名称。
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
文件的路径。