Pregunta

Estoy buscando una solución general para la actualización del esquema de base de datos con herramientas ORM, como JPOX o de Hibernación.¿Cómo hacerlo en tus proyectos?

La primera solución que viene a mi mente es crear mi propio mecanismo para la actualización de bases de datos, con secuencias de comandos SQL haciendo todo el trabajo.Pero en este caso voy a tener que recordar acerca de la creación de nuevos guiones cada vez que el objeto de las asignaciones se actualizan.Y todavía vamos a tener que lidiar con bajo nivel de consultas SQL, en lugar de sólo la definición de las asignaciones y permitiendo que el ORM herramientas para hacer todo el trabajo...

Así que la pregunta es cómo hacerlo correctamente.Tal vez algunas herramientas permiten simplificar esta tarea (por ejemplo, me enteré de que los Rieles han dicho mecanismo integrado), si es así por favor me ayude a decidir que herramienta ORM a elegir para mi próximo proyecto de Java.

¿Fue útil?

Solución

LiquiBase es una interesante librería de código libre para la manipulación de la base de datos de refactorings (actualizaciones).No he usado, pero sin duda le dan una oportunidad en mi próximo proyecto donde necesito actualizar una base de datos de esquema.

Otros consejos

No veo por qué ORM esquemas generados son diferente a otras DB schemas - el problema es el mismo.Suponiendo que el ORM va a escupir una generación de secuencia de comandos, puede utilizar una herramienta externa para hacer el diff

No lo he probado pero google volvió con SQLCompare como una opción - estoy seguro de que hay otros.

Mano de código SQL scripts de actualización y derribamos el esquema y volver a generar la aplicación de los scripts de actualización como parte de nuestro continuo proceso de construcción.Si alguno de hibernación asignaciones no coincide con el esquema, la compilación fallará.

DbMaintain también puede ayudar aquí.

Usted puede comprobar esto comparación de características de algún esquema de base de datos herramientas de actualización.

Una comparación de la cantidad de preguntas en la SIEMBRA de algunas de estas herramientas:

Yo creo que tu mejor opción es usar un ORM-herramienta que incluye migración de base de datos como Subsónico:

http://subsonicproject.com/2-1-pakala/subsonic-using-migrations/

Terminamos haciendo scripts de actualización cada vez que hemos cambiado la base de datos.Así que no hay un guión a partir de la versión 10 a 11, de 11 a 12, etc..A continuación, podemos ejecutar cualquier consecutivos conjunto de scripts para pasar de alguna versión existente a la nueva versión.Hemos almacenado la versión existente en la base de datos por lo que se podría detectar esta en el inicio.

Sí esto implicó la base de datos de código específico!Uno de los principales problemas con la Hibernación!

Cuando se trabaja con Hibernate, yo uso un instalador de clase que se ejecuta desde la línea de comandos y tiene opciones para la creación de esquema de base de datos, la inserción de la base de datos, y se actualiza de forma dinámica el esquema de base de datos utilizando SchemaUpdate.Me parece muy útil.También me da un lugar para poner uno de los scripts que se ejecutarán cuando una nueva versión está en marcha para, por ejemplo, rellenar un campo nuevo en una DB tabla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top