Soluciones

Una base de datos de vista previa para cada pull request

Crea una rama de tu base de datos cuando se abre un pull request y elimina la rama cuando se cierra. Cada vista previa parte de tus datos reales y corre en su propio cómputo, así que las migraciones y las pruebas nunca tocan la rama principal.

Cómo funciona

  1. 01

    Crear una rama al abrir el pull request

    Tu job de CI llama a la Open API con una clave de API y crea una rama a partir de tu rama principal. Una rama es una copia por escritura de su rama padre y está lista en segundos, sin importar el tamaño de la base de datos.

    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\"}"
  2. 02

    Apuntar la vista previa a la rama

    Cada rama tiene su propio cómputo principal. Lista las ramas del proyecto, espera a que el estado del nuevo cómputo sea READY y usa su host para las migraciones, las pruebas y la app de la vista previa.

    curl "https://relyt.one/api/v1/projects/$PROJECT_ID/branches" \
      -H "Authorization: Bearer $RELYT_API_KEY"
  3. 03

    Eliminarla al cerrar el pull request

    Una llamada más elimina la rama y su cómputo. La rama principal nunca cambia.

    curl -X DELETE "https://relyt.one/api/v1/projects/$PROJECT_ID/branches/$BRANCH_SLUG" \
      -H "Authorization: Bearer $RELYT_API_KEY"

Lo que ya puedes usar

  • Datos reales, no fixtures

    Una rama empieza con todos los datos de su rama padre. Comparte con ella los datos que no cambian, así que solo los cambios que hace la vista previa ocupan almacenamiento nuevo.

  • Su propio cómputo

    Las consultas de una vista previa corren en el cómputo de la rama, no en el de la rama principal. Un cómputo inactivo puede suspenderse y reanudarse con la siguiente conexión, sin tocar tus datos.

  • Automatizable desde cualquier CI

    Crea, lista, renombra y elimina ramas con la Open API REST y una clave de API. Los nombres de rama son únicos dentro de un proyecto, así que si un job se ejecuta dos veces para el mismo pull request, recibe un 409 en vez de crear una segunda rama.

Ten en cuenta

  • Relyt One no instala nada en tu repositorio: las llamadas se ejecutan en tu propio flujo de CI, por ejemplo un job de GitHub Actions, con la clave de API guardada como secreto.
  • Una rama que todavía tiene ramas secundarias no se puede eliminar, y la rama principal no se puede eliminar nunca; por eso, crea las vistas previas a partir de la rama principal y elimínalas antes que a su rama padre.

Otras soluciones

Pruébalo con el plan Gratuito.

Inicia sesión con GitHub o Google, crea un proyecto y una clave de API, y ejecuta las llamadas de arriba. No necesitas tarjeta de crédito.