An Evening with…

Arkho Innova Meetup Series
• 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!!!
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
¿Qué es Liquibase?
Gestión de cambios en
una base de datos
Código
¿Qué ocurre cuando hay
cambios en la base de datos?
Error SQL..?
Con este cambio
quedo como Rey
Me mandan el script SQL
con los cambios please
Database changes
Primeros pasos
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
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>
Archivo changelog.xml
• Bitácora de cambios
• Id del cambio
• Autor del cambio
• Cambio realizado
• Otros parámetros
Ejemplo changelog.xml
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.
Rollback
Equipo de desarrollo y el cambio de
paradigma
Nuestra experiencia
• Tiempo de comprensión
• Tiempo de adaptación
• Resistencia al cambio
• Solución de conflictos
• Felicidad
Tiempo de comprensión
• Lo que demora el equipo en comprender el
funcionamiento de la herramienta.
• Curva de aprendizaje logarítmica
Tiempo de adaptación
• El equipo se debe acostumbrar a trabajar con la herramienta.
• Resistencia al cambio
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.
Solución de conflictos
• Cambié algo en la base de datos, luego hice el cambio en mi
changelog.
• Me arroja error. ¿Qué hago?
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.
Visión actual del equipo
Ejemplo 1
Primer encuentro con liquibase
Ejemplo 1
• Liquibase por línea de comandos
• Generar chagelog inicial
• Generar modificaciones en la base de datos
Ejemplo 2
Primer encuentro con liquibase
Ejemplo 2
• Iniciar proyecto con Liquibase desde cero.
• Liquibase y Maven
• Liquibase como herramienta de integración continua.
Changelogs por releases
• Ayuda a mantener ordenado el
versionamiento (legibilidad)
• Fácil encontrar cambios hechos
en alguna etapa del proyecto
ChangeSets eficientes
• Ayuda a mantener ordenadas
las modificaciones dentro del
changelog (legibilidad)
• Fácil estructuración de
rollbacks
Uso eficiente de id y comment
• Mejora la solución de
problemas
• Aclara la lectura de los
cambios para todo el equipo
Resumen
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.
Desventajas
Desventajas liquibase
Código fuente
• https://github.com/harenas/meetup-liquibase-ejemplo-1
• https://github.com/harenas/meetup-liquibase-ejemplo-2
An Evening with…

Arkho Innova Meetup Series

An evening with... Liquidbase

  • 1.
    An Evening with…
 ArkhoInnova Meetup Series
  • 2.
    • Un espaciopara 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é esLiquibase? • 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
  • 4.
  • 5.
    Gestión de cambiosen una base de datos
  • 7.
  • 8.
    ¿Qué ocurre cuandohay cambios en la base de datos?
  • 9.
    Error SQL..? Con estecambio quedo como Rey Me mandan el script SQL con los cambios please Database changes
  • 10.
  • 11.
    Liquibase desde líneade 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>
  • 13.
    Archivo changelog.xml • Bitácorade cambios • Id del cambio • Autor del cambio • Cambio realizado • Otros parámetros
  • 14.
  • 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.
  • 16.
  • 17.
    Equipo de desarrolloy el cambio de paradigma
  • 18.
    Nuestra experiencia • Tiempode 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 equipose 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.
  • 24.
  • 26.
  • 27.
    Ejemplo 1 • Liquibasepor línea de comandos • Generar chagelog inicial • Generar modificaciones en la base de datos
  • 28.
  • 29.
    Ejemplo 2 • Iniciarproyecto con Liquibase desde cero. • Liquibase y Maven • Liquibase como herramienta de integración continua.
  • 31.
    Changelogs por releases •Ayuda a mantener ordenado el versionamiento (legibilidad) • Fácil encontrar cambios hechos en alguna etapa del proyecto
  • 32.
    ChangeSets eficientes • Ayudaa mantener ordenadas las modificaciones dentro del changelog (legibilidad) • Fácil estructuración de rollbacks
  • 33.
    Uso eficiente deid y comment • Mejora la solución de problemas • Aclara la lectura de los cambios para todo el equipo
  • 34.
  • 35.
    Beneficios • Se mantieneun 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.
  • 36.
  • 37.
    Código fuente • https://github.com/harenas/meetup-liquibase-ejemplo-1 •https://github.com/harenas/meetup-liquibase-ejemplo-2
  • 38.
    An Evening with…
 ArkhoInnova Meetup Series