Comment puis-je supprimer les index non utilisés dans Google Application Engine?
-
03-07-2019 - |
Question
J'ai ajouté accidentellement un nouveau filtre pour mon application GAE. Le statut de l'index est «en service» maintenant. Cependant, je n'ai pas du tout besoin de cet index et j'aimerais le supprimer. Comment puis-je faire cela?
La solution
Il est documenté ici . J'espère que ça aide.
Suppression des index non utilisés
Lorsque vous modifiez ou supprimez un index de index.yaml, l'index d'origine est non supprimé de App Engine automatiquement Cela vous donne la possibilité de laisser une ancienne version de l'application en cours d'exécution tandis que de nouveaux index sont en cours de construction, ou pour revenir à la ancienne version immédiatement si un problème est découvert avec une version plus récente.
Lorsque vous êtes sûr que les anciens index sont n'est plus nécessaire, vous pouvez les supprimer à partir de App Engine en utilisant les éléments suivants commande:
appcfg.py vacuum_indexes myapp/
Cette commande supprime tous les index de l'application qui ne sont pas mentionnés dans la version locale de index.yaml.
Autres conseils
Pour GAE / Java, la documentation comprend les ces informations :
Suppression des index non utilisés
...
Lorsque vous êtes sûr que les anciens index ne sont plus nécessaires, vous pouvez supprimez-les d'App Engine à l'aide de l'action vacuum_indexes:
./appengine-java-sdk/bin/appcfg.sh vacuum_indexes myapp/war
Cette commande supprime tous les index de l'application qui ne sont pas mentionnés dans les versions locales de datastore-indexes.xml et généré / datastore-indexes-auto.xml.
Dans Windows Google AppEngine Java , nous devons utiliser la commande appcfg.cmd pour supprimer les index inutilisés de l'application déployée.
Syntaxe:
chemin_application-java-java \ bin \ appcfg.cmd vacuum_indexes chemin-racine du projet \ nom_projet \ guerre \
Pour gae-java, comme l'a mentionné JochenJung, les "vacuum_indexes" Cet outil fonctionnera, mais vous devrez émuler un projet Python de la manière suivante:
Notez que l’aspirateur ne semble fonctionner que s’il est dirigé vers * .appspot.com, pas le développeur local. environnement.
- créez app.yaml pour votre application et mettez-la dans votre répertoire racine / myapp /, au minimum:
application: myproj
version: 4
runtime: python
api_version: 1
où " version " est la version de votre application, " myproj " le nom GAE de votre projet.
- créez un index.yaml et mettez-le dans le même répertoire racine. Au lieu de mettre laborieusement dans ce fichier les informations d'index pour les index que vous souhaitez conserver, il s'avère que l'outil va vous donner une confirmation oui / non pour chaque index supprimé, il est donc plus simple d'indiquer que TOUT les index doivent être supprimés et utilisez la confirmation pour conserver ceux que vous souhaitez conserver.
indexes:
# AUTOGENERATED
Ensuite, exécutez la commande comme indiqué ci-dessus,
/appcfg.py vacuum_indexes /path/to/myproj/
En février 2019, c’est maintenant:
gcloud datastore indexes cleanup index.yaml
Si vous utilisez maven mvn appengine: vacuum_indexes
. Pas besoin de mvn appengine: update
, la commande met à jour le serveur distant.
Liste complète des commandes maven ici .
Sous Windows utilisant Java, cette commande a fonctionné pour moi:
appcfg.cmd vacuum_indexes C:\Users\Name\AndroidStudioProjects\Project\backend\src\main\webapp\
Remarque: assurez-vous de disposer d'un datastore-indexes.xml
dans le dossier webapp
(ces index seront épargnés).
Avec la version actuelle de gcloud, vous pouvez simplement faire:
gcloud datastore cleanup-indexes index.yaml
qui est plus intuitif que d'appeler appcfg.cmd [...].
index de nettoyage gastoud datastore /path/to/file/index.yaml
cette commande ne fonctionne plus .
Le magasin de données gcloud indexe cleanup /path/to/index.yaml
il s'agit de la nouvelle commande .
vous devez les exécuter dans la console google cloud
. normalement, vous pouvez télécharger le fichier index.yaml
à l'aide de la fonctionnalité upload de fichier
dans google cloud console
. votre fichier passe directement à un _admin
directement appelé, vous pouvez cd
et appeler,
Le magasin de données gcloud indexe le nettoyage index.yaml
Conseil
si vous utilisez datastore
dans un projet java , vous avez datastore-indexes.xml
au lieu de index.yaml
. Vous pourriez avoir du mal à trouver le fichier index.yaml
si vous ne savez pas où chercher.
vous pouvez simplement trouver le chemin du fichier index.yaml
en consultant la console de déploiement
dans votre IDE.