Я случайно добавил новый фильтр в мое приложение GAE. Статус индекса теперь "служит", но мне вообще не нужен этот индекс, и я бы хотел его удалить. Как я могу это сделать?
Как удалить неиспользуемые индексы в Google Application Engine?
Ответ 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.