Je travaille sur un code de migration de base de données en Java. Im également en utilisant un modèle d'usine afin que je puisse utiliser différents types de bases de données. Et chaque type de base de données im utilise implémente une interface commune.Modèle de migration de base de données pour Java?
Ce que je voudrais faire est d'avoir une vérification de migration qui est interne à la classe et exécute un code de mise à jour de schéma de base de données automatiquement. La mise à jour est assez simple (je vérifie la version du schéma dans une table et la compare à une constante de mon application pour décider si elle doit migrer ou non et entre quelles versions du schéma). Pour rendre cela automatique, je pensais que le test devrait vivre à l'intérieur (ou être appelé) du constructeur. OK, assez juste, c'est assez simple. Mon problème est que je ne veux pas que le test s'exécute à chaque fois que j'instancie un objet de base de données (il lance une requête donc le faire fonctionner sur toutes les constructions n'est pas efficace). Alors peut-être que cela devrait être une méthode statique de classe? Je suppose que ma question est, quel est un bon modèle de conception pour ce type de problème? Il devrait y avoir un moyen propre de s'assurer que le test de migration ne s'exécute qu'une fois OU est super-efficace.
LiquiBase est un bon outil si vous avez une seule application monolithique qui peut être fait pour fonctionner au-dessus de celui-ci. Comme c'est le plus souvent le cas, ce n'est pas un problème. – Esko