Llega pglifecycle 2.0 beta
Me complace anunciar el primer lanzamiento público de pglifecycle, una herramienta de código abierto diseñada para gestionar esquemas de PostgreSQL.
pglifecycle permite mantener el esquema de la base de datos bajo control de versiones mediante archivos YAML estructurados, uno por cada tabla, vista, función, rol y demás objetos. Así, resulta mucho más sencillo consultar, revisar y modificar el esquema actual sin tener que reconstruirlo a partir de un largo historial de archivos de migración.
Con pglifecycle, es posible:
- Importar una base de datos existente a un proyecto de esquemas
- Generar a partir del proyecto un archivo que pueda restaurarse con pg_restore
- Comparar el proyecto con una base de datos activa y generar las instrucciones DDL necesarias para poner ambos esquemas en correspondencia
La implementación se basa primero en la generación de un plan. Los cambios destructivos no se incluyen, salvo que se autoricen expresamente, por lo que el SQL generado puede revisarse durante el proceso de integración continua (CI) antes de ejecutarlo.
La acción de GitHub para pglifecycle permite detectar diferencias entre el esquema esperado y el existente (schema drift), y publicar los planes de implementación directamente en las solicitudes de incorporación de cambios (pull requests), sin ejecutar dichos cambios.
La versión 2 reescribe en Rust la herramienta original, que lleva más de siete años gestionando el esquema de producción de AWeber. Esta versión beta amplía los tipos de objetos de PostgreSQL compatibles y mejora la convergencia de los despliegues, así como su seguridad.
El equipo agradece los comentarios y casos de prueba en escenarios reales, que contribuyen a la evolución de pglifecycle hacia una versión 2.0 estable.

