3 votes

Comment effectuer une migration sur Google App Engine

J'ai une application Node.js qui tourne sur Google App Engine.

Je souhaite effectuer des migrations séquentielles.

Est-il possible de lancer une commande depuis l'Instance de mon application node.js ?

Essentiellement quelque chose comme le projet d'heroko run commande qui exécuter un processus unique à l'intérieur d'un dyno Heroku .

Si ce n'est pas possible, quelle est la meilleure pratique pour effectuer des migrations ?

Je pourrais toujours l'ajouter au gcp-build mais cela fonctionnera pour chaque déploiement.

2voto

Dan Cornilescu Points 5018

Il n'est pas possible d'exécuter des scripts/apps autonomes dans GAE, voir Comment exécuter un script python personnalisé dans Google App engine ? (dans le contexte de Python, mais l'idée générale s'applique à tous les environnements d'exécution).

La façon dont j'exécutais mes migrations (de datastore) consistait à porter la fonctionnalité de la migration script elle-même dans le corps d'un handler protégé par l'administrateur dans mon application GAE, que je déclenchais avec une requête HTTP pour une URL particulière. Je l'ai un peu retravaillé pour diviser l'opération de migration potentiellement longue en une séquence d'opérations plus petites (en utilisant des files d'attente de tâches push), beaucoup plus conviviales pour GAE. Cela m'a permis de tester en direct la migration d'un ensemble d'entités de magasin de données à la fois et de ne passer à plusieurs ensembles que lorsque j'étais totalement sûr de son fonctionnement. Je n'ai pas non plus eu à me soucier de la cohérence éventuelle (j'utilisais des requêtes pour déterminer les entités à migrer) - j'ai simplement invoqué la migration de manière répétée jusqu'à ce qu'il n'y ait plus rien à faire.

Une fois la migration terminée, j'ai supprimé le code correspondant (mais j'ai conservé le gestionnaire lui-même pour les migrations futures). L'effet secondaire positif est que l'historique de la migration a été capturé dans l'historique de mon référentiel lui-même.

Potentiellement intéressant : Gestion des migrations de schémas dans App Engine

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X