Как удалить неиспользуемые индексы в Google Application Engine?

Я случайно добавил новый фильтр в мое приложение GAE. Статус индекса теперь "служит", но мне вообще не нужен этот индекс, и я бы хотел его удалить. Как я могу это сделать?

Ответ 1

Здесь описано здесь. Надеюсь, что это поможет.

Удаление неиспользуемых индексов

При изменении или удалении индекса из index.yaml, исходный индекс равен не удалено из App Engine автоматически. Это дает вам возможность оставить старую версию приложения, в то время как новые индексы строятся или возвращаются к более раннюю версию немедленно, если проблема обнаруживается с более новой версией.

Когда вы уверены, что старые индексы больше не нужны, вы можете удалить их из App Engine, используя следующие Команда:

appcfg.py vacuum_indexes myapp/

Эта команда удаляет все индексы для приложения, которые не упоминаются в локальной версии index.yaml.

Ответ 2

Для GAE/Java документация включает эту информацию:

Удаление неиспользуемых индексов

...

Когда вы уверены, что старые индексы больше не нужны, вы можете удалите их из App Engine с помощью действия vacuum_indexes:

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

Эта команда удаляет все индексы для приложения, которые не упомянуты в локальные версии datastore-indexes.xml и Генерация/датастор-индексы-auto.xml.

Ответ 3

В Windows Google AppEngine Java мы должны использовать команду appcfg.cmd для удаления неиспользуемых индексов развернутого приложения.

Синтаксис:

appengine-java-sdk-path\bin\appcfg.cmd vacuum_indexes project-root-path\имя файла \war\

Ответ 4

Для gae-java, как упоминал JochenJung, инструмент "vacuum_indexes" будет работать, но вам нужно будет эмулировать проект python следующим образом:

Обратите внимание, что вакуумный инструмент работает только при указании на *.appspot.com, а не на локальном dev. окружающая среда.

  • создайте app.yaml для своего приложения и поместите его в свой/myapp/корневой каталог, минимально:

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

где "версия" - это ваша версия приложения, "myproj" имя GAE вашего проекта.

  • создайте index.yaml и поместите его в один корневой каталог. Вместо того, чтобы кропотливо помещать в этот файл индексную информацию для индексов, которые вы хотите сохранить, выясняется, что этот инструмент даст вам подтверждение да/нет для каждого индекса, который он удаляет, поэтому проще просто указать, что ВСЕ индексы должны быть отброшены и использовать подтверждение для сохранения тех, которые вы хотите сохранить.

indexes:

# AUTOGENERATED

Затем запустите команду, как показано выше,


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

Ответ 5

По состоянию на февраль 2019 сейчас:

gcloud datastore indexes cleanup index.yaml

Ответ 6

Если вы используете maven mvn appengine:vacuum_indexes. Нет необходимости в mvn appengine:update, команда обновляет удаленный сервер.

Полный список команд maven здесь.

Ответ 7

В Windows с использованием Java эта команда работала для меня:

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

Примечание. Убедитесь, что у вас есть datastore-indexes.xml в папке webapp (эти индексы будут сохранены).

Ответ 8

С текущей версией gcloud вы можете просто сделать:

gcloud datastore cleanup-indexes index.yaml

что более интуитивно понятно, чем вызов appcfg.cmd [...].

Ответ 9

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

Совет

Если вы используете datastore в проекте Java, у вас есть datastore-indexes.xml вместо index.yaml. У вас могут возникнуть проблемы с index.yaml файла index.yaml если вы не знаете, где искать.

вы можете просто найти путь к файлу index.yaml, посмотрев deploy console в вашей IDE.