J'utilise à la fois ruby on rails et Java. J'aime beaucoup utiliser les migrations lorsque je travaille sur un projet de rails. Je me demande donc s'il existe un outil de migration pour Java. Si un tel outil n'existe pas, est-ce une bonne idée d'utiliser les migrations comme outil pour contrôler une base de données utilisée par un projet Java?
Réponses
Trop de publicités?Pour une comparaison des fonctionnalités entre
- S'envoler
- Liquibase
- c5-db-migration
- dbdeploy
- mybatis
- MIGRATEdb
- migrate4j
- dbmainain
- AutoPatch
jetez un oeil à http://flywaydb.org
Cela devrait être un bon début pour vous et pour quiconque de choisir le bon outil pour le poste.
Liquibase est un autre projet intéressant dans ce domaine.
J'ai utilisé Hibernate SchemaUpdate pour effectuer la même fonction que les migrations. Il est effectivement plus facile que les migrations parce que chaque fois que vous démarrez votre application, il examine la structure de la base et se synchronise avec votre mappages donc il n'y a pas de commission supplémentaire:db:migrate étape et votre application ne peut jamais être hors de synchronisation avec la base de données est en cours d'exécution contre. Fichiers de mapping Hibernate sont pas plus complexe que les Rails de migrations de sorte que même si vous n'utilisez pas de mise en veille prolongée dans l'application, vous pouvez prendre avantage de cela. L'inconvénient est qu'il n'est pas aussi souple en ce qui concerne la restauration, la migration vers le bas, l'exécution des instructions DML. Comme l'a souligné dans les commentaires, il n'a pas également supprimer des tables ou des colonnes. - Je exécuter une méthode distincte de le faire manuellement dans le cadre de la veille prolongée processus d'initialisation.
Je ne vois pas pourquoi vous ne pouvez pas utiliser les Rails de migrations, mais - aussi longtemps que vous n'avez pas l'esprit de l'installation de la pile (Rubis, des commissions, des Rails), vous ne touchez pas à votre application.
Il y a aussi deux implémentations indépendantes de rails-comme les migrations pour Java:
1) Maven migrations de Carbone Cinq
2) les colonies de Fourmis en fonction des tâches à partir de Hashrocket (mon préféré)
Bien que ces paquets ont été écrites pour Maven et Ant plus précisément, avec peu de travail, vous pouvez l'adapter à peu près n'importe quoi.