Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Estrategias para modificar el esquema de una BD con JPA

Saludos:

Me pregunto si alguien tiene alguna referencia que pueda seguir sobre cómo se puede actualizar el esquema de una base de datos de una aplicación que usa JPA. La idea, claro, es la de una pequeña aplicación de escritorio que usa JPA con Derby o similar y que, en una versión 1.01, añade o modifica campos en alguna de las tablas existentes.

De momento yo no he conseguido encontrar nada, por lo que imagino que la técnica consistiría en actuar antes de poner en marcha la aplicación, usando JDBC (quizá con DDLUtils), pero me alegraría saber que hay una manera más sencilla, porque habría que hacer una clase "UpdateCheck" que sea capaz de identificar en qué versión está el esquema de la base de datos y aplicar sucesivamente todos los cambios necesarios hasta dejarlo en la versión correspondiente al de la aplicación en ejecución.

Gracias por adelantado.

julio 30, 2013 | Registered Commenterrickiees

Si necesitas crear o eliminar tablas en tiempo de ejecución, creo que la tienes difícil para hacerlo con JPA puro. Tendrías que utilizar consultas SQL directas.

Por otro lado, para actualizar la base de datos cada vez que haces cambios en las entidades y vuelves a hacer deploy al proyecto, te recomiendo que eches un ojo a una utilería llamada Liquibase. Con ésta librería se implementan las migraciones de Grails. El problema es que ignoro si puedes ejecutar la migración cuando arrancas la aplicación, en la mayoría de los casos lo ejecutas aparte de forma manual antes de lanzar la aplicación. El problema que te ayudará a resolver Liquibase es el saber en que versión está tu esquema de base de datos actualmente, y de allí aplicar la actualización requerida.

julio 30, 2013 | Registered Commenterantoniovl