example - table swing java
Migraciones para Java (8)
He usado el SchemaUpdate de Hibernate para realizar la misma función que las migraciones. En realidad es más fácil que migraciones porque cada vez que inicias tu aplicación, examina la estructura de la base de datos y la sincroniza con tus mapeos para que no haya un rake adicional: db: migrate step y tu aplicación nunca estará fuera de sincronización con la base de datos que está ejecutando en contra. Los archivos de mapeo de Hibernate no son más complejos que las migraciones de Rails, por lo que incluso si no usara Hibernate en la aplicación, podría aprovecharlo. La desventaja es que no es tan flexible en cuanto a retroceder, migrar hacia abajo, ejecutar declaraciones DML. Como se señala en los comentarios, tampoco se sueltan tablas o columnas. Ejecuto un método diferente para hacer esos manualmente como parte del proceso de inicialización de Hibernate.
No veo por qué no podrías usar las migraciones de Rails, siempre y cuando no te importe instalar la pila (Ruby, Rake, Rails), no tendrás que tocar tu aplicación.
Uso tanto Ruby on Rails como Java. Realmente disfruto el uso de migraciones cuando estoy trabajando en un proyecto de rieles. así que me pregunto si hay una herramienta de migraciones para Java. Si no existe tal herramienta, ¿es una buena idea usar migraciones como herramienta para controlar una base de datos utilizada por un proyecto Java?
Me encontré con este post mientras investigaba la misma pregunta. Aún no he llegado a ninguna conclusión sobre la mejor herramienta o enfoque, pero una herramienta con la que me he encontrado y que hasta ahora no se ha mencionado en otras respuestas es dbdeploy . Me interesaría leer cualquier comparación de estas herramientas.
Algunos otros recursos relevantes: Martin Fowler y Pramod Sadalage tienen un puesto algo viejo en Evolutionary Database Design , y el libro Refactoring Databases: Evolutionary Database Design por Sadalage y Scot Ambler.
Para una comparación de características entre
- Vía migratoria
- Liquibase
- c5-db-migration
- dbdeploy
- mybatis
- MIGRATEdb
- migrate4j
- dbmaintain
- AutoPatch
echa un vistazo a http://flywaydb.org
Este debería ser un buen comienzo para que usted y cualquier otra persona seleccione la herramienta adecuada para el trabajo
También hay DbMaintain que se desarrolló inicialmente dentro de Unitils pero ahora es un proyecto dedicado. Actualmente lo estamos usando y estamos muy satisfechos (lo que no significa que no haya ninguna buena alternativa). Enumero más de ellos en mi database+migration marcadores de database+migration (centrándome en las herramientas que soportan Maven).
También hay dos implementaciones independientes de migraciones tipo riel para Java:
1) Migraciones basadas en Maven de Carbon Five
2) Tareas basadas en Hashrocket de Hashrocket (mi favorito personal)
Aunque estos paquetes fueron escritos específicamente para Maven and Ant, con algo de trabajo puedes adaptarlos a cualquier cosa.
Migrate4j parece ser un candidato, pero el proyecto no parece lo suficientemente maduro para el uso de producción.
Liquibase es otro proyecto en este dominio que vale la pena echarle un vistazo.