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

StackOverflow https://stackoverflow.com/questions/813839

  •  03-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Это задокументировано здесь . Надеюсь, это поможет.

  

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

     

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

     

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

appcfg.py vacuum_indexes myapp/
     

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

Другие советы

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

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

...

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

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

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

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

Синтаксис:

  

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

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

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

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

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

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

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

indexes:

# AUTOGENERATED

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


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

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

gcloud datastore indexes cleanup index.yaml

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

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

В Windows, использующей Java, эта команда работала для меня:

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

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

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

gcloud datastore cleanup-indexes index.yaml

, который более интуитивен, чем вызов appcfg.cmd [...].

индексы очистки хранилища данных gcloud /path/to/file/index.yaml

эта команда больше не работает .

хранилище данных gcloud индексирует очистку /path/to/index.yaml

это новая команда .

вы должны запустить их в облачной консоли Google . Обычно вы можете загрузить файл index.yaml , используя функцию загрузка файла в облачной консоли Google . ваш файл отправляется непосредственно в _admin , куда вы можете cd и позвонить,

хранилище данных gcloud индексирует очистку index.yaml

Совет

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top