En la mayoría de proyectos en los que he participado, existía un repositorio para gestionar las diferentes versiones de código, pero no pasaba lo mismo con los cambios que se realizaban en la base de datos. Para trazar estos cambios, se utilizaban mecanismos bastante primarios, como por ejemplo crear ficheros upgrades para actualizar los datos entre las diferentes versiones de proyecto.
Liquibase se presenta en su web de la siguiente forma:
You never develop code without version control, why do you develop your database without it?
- faltan tablas, campos incorrectos, faltan columnas...
- es necesario hacer una carga mínima de datos y nadie sabe cual debería ser.
- se ha cambiado la versión del proyecto y es necesario cargar una nueva versión de base de datos.
- el equipo de desarrollo utiliza mysql y el entorno de integración oracle
- ...
- Merging changes from multiple developers
- Code branches
- Managing production data as well as various test datasets
- Cluster-safe database upgrades
- Automated updates or generation of SQL scripts that can be approved and applied by a DBA
- Database ”diff“s
- Generating starting change logs from existing databases
- Generating database change documentation
Estos cambios pueden ser aplicados a través de varios métodos, ya sea a través de una Ant, Maven, línea de comandos o de forma automática durante la aplicación o el inicio del servidor de aplicaciones.
LiquiBase Migrator es el núcleo del sistema que permite de forma simple el desarrollo de aplicaciones de base de datos utilizando una metodología ágil. Como los cambios se aplican a la base de datos local durante el desarrollo, las diferentes revisiones se almacenan en un archivo de registro XML.
Cada cambio que se produce está identificado por:
- un id
- un autor
- el nombre
- y la ubicación del archivo de cambio
Primeros pasos con Liquibase en Maven.
Para comenzar a utilizar liquibase en nuestros proyectos con Maven, podemos seguir los siguientes pasos:
- Agregar al pom.xml las dependencias del driver de BBDD que necesitemos.
- Agregar al pom.xml el plugin de liquibase.
- Crear el fichero src/main/resources/liquibase.properties
- Crear el fichero src/main/resources/org/liquibase/change_log.xml
- Por último, ejecutar mvn liquibase:update
Una vez finalizado con éxito los pasos, tendremos en la BBDD test la siguiente información:
Más información.
- http://www.liquibase.org/
- http://www.liquibase.org/quickstart
- http://www.liquibase.org/manual/maven
- http://liquibase.jira.com/wiki/display/CONTRIB/Oracle+Extensions
JK.
JK, buen post!... Control de versiones de BDs es el gran olvidado en el SDLC.
ResponderEliminarHe visto el apartado de "Wishlist" y parece que ya están trabajando en:
1. generación de diagrama de BDs
2. plugins para los IDEs
3. generación de datos de prueba
he visto el ejemplo de DOC del modelo de dato, es un simple JavaDoc, aunque completo, es poco "vendible" internamente en las organizaciones.
Una cosa que no he visto es si es posible hacer "reverse engineer", en fin, a esperar la siguiente release :)
Gracias Roger por tu comentario.
ResponderEliminarEstaba buscando una opción para gestionar el versionado de cambios en BBDD y me encontré con esta grata sorpresa. Las pruebas que he estado realizando, han dado muy buen resultado. además de sencilla de usar y muy intuitiva.
Una de las herramientas que estoy esperando que liberen es el plugin para eclipse, de forma que sea simple hacer cambios en la BBDD y que estos generen automáticamente el changelog.
También puedes echar un vistazo http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=liquibase
Hasta pronto.