Liquibase es un librería Open Source basada en Java, que independiente del motor de base de datos, permite hacer un seguimiento centralizado a los constantes cambios que sufren los modelos de datos (sobre todo en la etapa de desarrollo) y facilitan la vida cuando tenemos múltiples ambientes de trabajo (Producción, pre-producción, desarrollo, QA, ...).
En este meetup revisamos desde la teoría a la práctica, desarrollando algunos ejemplos con diferentes niveles de complejidad.
Además revisamos cómo un equipo de desarrollo se puede ver beneficiado con el uso de esta herramienta y cómo es posible integrar su uso a procesos de integración continua.
2. • Un espacio para compartir experiencias
y conocimiento
• Un espacio para hacer relaciones entre
equipos con intereses afines
• Un espacio para pasarla bien
Gracias por su asistencia!!!
3. Overview
• ¿Qué es Liquibase?
• Objetivos y funcionalidades principales
• Equipo de desarrollo trabajando con Liquibase y
su proceso de adaptación.
• Visión del equipo una vez adoptada la tecnología.
• Ejemplo 1
• Ejemplo 2
• Best Practices
• Resumen
11. Liquibase desde línea de comando
• Bajar liquibase desde
http://www.liquibase.org/download/
index.html
• Extraer Zip e instalar liquibase para
ejecutarlo por línea de comandos.
$ liquibase —help
12. Liquibase desde Maven
• Bajar liquibase desde
http://www.liquibase.org/download/index.html
• Extraer Zip e instalar liquibase para ejecutarlo por línea de comandos.
$ mvn liquibase:<comando>
15. Parámetros changelog + usados
id ID del cambio. Se recomienda utilizar YYYYMMDD+num
author Nombre de quien realiza el cambio.
dbms Motor de base de datos soportado que se está utilizando.
runAlways Ejecuta este cambio siempre. Incluso si ya fue ejecutado previamente.
runOnChange Ejecuta el cambio la primera vez y luego cada vez que detecte que ese valor fue modificado.
failOnError Ante un error detiene la ejecución del changelog y arroja un error.
18. Nuestra experiencia
• Tiempo de comprensión
• Tiempo de adaptación
• Resistencia al cambio
• Solución de conflictos
• Felicidad
19. Tiempo de comprensión
• Lo que demora el equipo en comprender el
funcionamiento de la herramienta.
• Curva de aprendizaje logarítmica
20. Tiempo de adaptación
• El equipo se debe acostumbrar a trabajar con la herramienta.
• Resistencia al cambio
21. Resistencia al cambio
• Cuesta no realizar las modificaciones
directamente en la base de datos.
• Se acostumbra a cambiar algo hasta
que funcione sin hacer un análisis
previo real de lo que se requiere.
22. Solución de conflictos
• Cambié algo en la base de datos, luego hice el cambio en mi
changelog.
• Me arroja error. ¿Qué hago?
23. Felicidad
• El equipo se compenetra en el
uso de la herramienta.
• Los deployments luego de un
cambio son transparentes
• Levantar un ambiente se hace
cada vez más fácil.
35. Beneficios
• Se mantiene un historial de todos los cambios realizados en la base
de datos.
• Se hace más eficiente el trabajo en equipo.
• Levantar un ambiente ya sea local o remoto se simplifica de manera
enorme.
• Disminuye la cantidad de involucrados en un proceso de deploy.
• Importante apoyo en el proceso de migración de una base de datos a
otra.