Saltar al contenido principal

Alteración de la base de datos

Al desarrollar nuevas funcionalidades o al refactorizar las existentes, a veces es inevitable cambiar los esquemas de la base de datos.

Las cosas pueden sonar aterradoras, como usuario, usualmente necesitas:

  • Verificar dos veces la diferencia entre dos o más versiones
  • Alterar la base de datos de una manera segura y compatible hacia atrás
  • Prepararte para posibles fallos, por ejemplo, tener un script de reversión
  • Reemplazar gradualmente las instancias de Logto en ejecución a la nueva versión

Oye, nosotros también somos desarrolladores, y sabemos que no es agradable hacer todas estas cosas arriesgadas pero obligatorias. Entonces, ¿por qué no se las damos a alguien que no cometerá errores, como un CLI?

A partir de ahora, tu proceso de actualización será:

  • Ejecutar logto db alt deploy desde cualquier lugar que pueda acceder a la base de datos
  • Reemplazar gradualmente las instancias de Logto en ejecución a la nueva versión

¡Comencemos!

Determinar la versión a implementar

Si tienes Logto CLI instalado globalmente, es altamente recomendable actualizar el CLI a la última versión antes de implementar para obtener todas las alteraciones de base de datos disponibles. Luego ejecuta el comando:

logto db alteration deploy

Si tu base de datos está actualizada, verás el siguiente mensaje:

[info] Found 0 alteration to deploy

Si tienes alteraciones no implementadas, el CLI te pedirá que elijas la versión deseada:

? Choose the alteration target version (Use arrow keys)
> 1.2.0
1.0.0

Teóricamente, la versión a implementar debería coincidir con la versión de tu instancia de Logto. Mientras tanto, puedes usar el comando con una versión objetivo:

logto db alteration deploy 1.2.0

Es útil cuando deseas hacer la alteración en un pipeline no-TTY, solo recuerda pasar la URL de la base de datos usando --db-url. Consulta Despliegue y configuración para configurar un trabajo de alteración en tu clúster.

nota:

Para cada script de alteración, Logto CLI ejecutará todo el script en una transacción. Así que si una implementación falla, puedes continuar fácilmente con el mismo comando después de solucionar el problema.

Revertir alteraciones

Nuestros scripts de alteración también vienen con un script down que puede revertir los cambios. Para revertir el estado de la base de datos a una versión específica, reemplaza 1.0.0 con tu versión objetivo y ejecuta el siguiente comando:

logto db alteration rollback 1.0.0
nota:

Puedes encontrar todos los scripts de alteración en este directorio.

Para colaboradores

La rama principal del repositorio de Logto puede contener scripts de alteración no publicados. Puede que necesites implementar manualmente las alteraciones "next" ejecutando:

logto db alteration deploy next

Si estás desarrollando una funcionalidad que requiere alteraciones en la base de datos, en lugar de actualizar el esquema de la base de datos, también necesitas proporcionar un script en el siguiente formato:

next-[timestamp]-what-to-do.ts

Consulta este directorio como referencia.