Liquibase es una herramienta open source que nos permite gestionar el refactor de la base de datos, de forma tal, que todo lo que se cree o modifique quedará versionado mediante svn o el sistema de gestion de versiones que utilicemos.
De esta forma, obtenemos un manejo limpio de la base de datos, sin caer en soluciones poco mantenibles como el versionado manual de multiples scripts.
La manera en que liquibase consigue esto, es manejando el refactor mediante un archivo xml que contendra lo que llaman “changeLogs”. Cada changeLog, contendrá uno o varios refactors.
Algunas de las cosas que nos permite hacer liquibase, son:
b) Agregar el plugin: En el ejemplo, configuramos los datos de la conexion directamente en el pom, pero tambien se pueden externalizar en un archivo.
junit junit 3.8.1 test mysql mysql-connector-java 5.0.5 org.liquibase liquibase-plugin 1.9.0.0 com.mysql.jdbc.Driver changelog.xml jdbc:mysql://localhost/liquibase root
El goal del plugin que nos permite ejecutar el changelog es “update”
mvn liquibase:update
3-Changelog de agregado de un campo
En el caso de querer agregar un campo, agregaremos otro changelog para esto.
mvn liquibase:rollback -Dliquibase.rollbackCount=1
Supongo que mas de uno estará pensando en lo tedioso que puede volverse escribir este xml. Al comienzo del proyecto, ademas del core y del plugin para maven comenzaron a desarrollar el “liquibase IDE”, y plugines para eclipse e IntelliJ. En su momento me baje el plugin para eclipse, y mas alla de los bugs (era version 0.6), se hacía muy práctico hacer el refactor, dado que todo se reducía a “boton derecho, add table”. Lamentablemente, tanto el IDE como el plugin para eclipse, no siguieron evolucionando. El que sí evolucionó fue el plugin para IntelliJ, que se mantiene al día con el core…habrá dinero de por medio?.
Segun Nathan Voxland (el creador del proyecto), prefiere avanzar con el core para luego dedicarse el ide, aunque en algunos foros aseguran que el proyecto del plugin de eclipse está abandonado…
Para terminar les dejo el link del proyecto, donde encontrarán un quick start, todos los goals que incluye el plugin y un manual con lo necesario para que puedan probarlo: http://www.liquibase.org/