Solutions
Une base de données de prévisualisation par pull request
Créez une branche de votre base de données à l’ouverture d’une pull request et supprimez-la à sa fermeture. Chaque prévisualisation part de vos vraies données et tourne sur sa propre instance de calcul : migrations et tests ne touchent jamais la branche principale.
Comment ça marche
01
Créer une branche à l’ouverture de la pull request
Votre job de CI appelle l’Open API avec une clé API et crée une branche à partir de votre branche principale. Une branche est une copie sur écriture de sa branche parente, prête en quelques secondes quelle que soit la taille de la base de données.
curl -X POST "https://relyt.one/api/v1/projects/$PROJECT_ID/branches" \ -H "Authorization: Bearer $RELYT_API_KEY" \ -H "Content-Type: application/json" \ -d "{\"name\":\"pr-$PR_NUMBER\",\"parentBranchSlug\":\"$MAIN_BRANCH_SLUG\"}"02
Brancher la prévisualisation sur la branche
Chaque branche a son propre calcul principal. Listez les branches du projet, attendez que le statut de la nouvelle instance de calcul soit READY, puis utilisez son host pour les migrations, les tests et l’application de prévisualisation.
curl "https://relyt.one/api/v1/projects/$PROJECT_ID/branches" \ -H "Authorization: Bearer $RELYT_API_KEY"03
La supprimer à la fermeture de la pull request
Un appel de plus permet de supprimer la branche et son instance de calcul. La branche principale n’est jamais modifiée.
curl -X DELETE "https://relyt.one/api/v1/projects/$PROJECT_ID/branches/$BRANCH_SLUG" \ -H "Authorization: Bearer $RELYT_API_KEY"
Ce que vous pouvez utiliser dès aujourd’hui
De vraies données, pas des fixtures
Une branche démarre avec toutes les données de sa branche parente. Elle partage avec elle les données inchangées : seules les modifications faites par la prévisualisation occupent du nouveau stockage.
Son propre calcul
Les requêtes d’une prévisualisation s’exécutent sur l’instance de calcul de la branche, pas sur celle de la branche principale. Une instance de calcul inactive peut se mettre en veille et reprendre à la connexion suivante, sans toucher à vos données.
Scriptable depuis n’importe quelle CI
Créez, listez, renommez et supprimez des branches avec l’Open API REST et une clé API. Les noms de branche sont uniques dans un projet : si un job s’exécute deux fois pour la même pull request, il reçoit un 409 au lieu de créer une seconde branche.
À savoir
- Relyt One n’installe rien dans votre dépôt : les appels s’exécutent dans votre propre workflow de CI, par exemple un job GitHub Actions, avec la clé API stockée comme secret.
- Une branche qui a encore des branches enfants ne peut pas être supprimée, et la branche principale ne peut jamais l’être ; créez donc les prévisualisations à partir de la branche principale et supprimez-les avant leur branche parente.
Autres solutions
Essayez avec le forfait Gratuit.
Connectez-vous avec GitHub ou Google, créez un projet et une clé API, puis lancez les appels ci-dessus. Aucune carte bancaire requise.