86 votes

Migrations pour Java

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?

88voto

Axel Fontaine Points 8614

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.

13voto

Adam Monsen Points 2178

Liquibase est un autre projet intéressant dans ce domaine.

10voto

Kyle Burton Points 10471

Grails a un utilitaire dbmigrate qui est inspiré de celui de Rails. Depuis qu'il est implémenté dans Groovy, vous devriez pouvoir l'utiliser à partir de n'importe lequel de vos projets Java.

9voto

Brian Deterling Points 7778

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.

6voto

Winky Points 131

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X