Comme cdeszaq l'a déjà mentionné, le matrice de comparaison des caractéristiques sur le Page d'accueil de l'itinéraire aérien est un bon point de départ.
Les deux sites Liquibase et Voie de migration ont l'intégration de Maven et Ant.
L'étape suivante consiste à déterminer si vous pouvez vous contenter des formats XML ou SQL annoté de Liquibase ou si vous préférez ou exigez du SQL pur et si vous avez besoin de migrations Java.
Chacun a ses avantages et ses inconvénients :
- Liquibase XML : Le plus petit dénominateur commun, un format indépendant de la base de données. Il vous libère de l'écriture DDL et est compatible avec toutes les bases de données. Verrouillage par le fournisseur (peut ou non être un problème).
- SQL annoté de Liquibase : SQL avec métadonnées Liquibase dans les commentaires (doit être présent). La DDL est convertie en XML Liquibase avec des blocs SQL personnalisés au moment de l'exécution. Peut ou non être compatible entre les bases de données.
- Plain SQL (supporté par Flyway) : Fichier SQL DDL ordinaire. Peut ou non être compatible entre les bases de données. Pas d'annotations spéciales. Les vidages de structure de BD utilisant des outils de BD natifs peuvent être utilisés tels quels. Pas de constructions spécifiques aux outils. Pas de verrouillage.
- Migrations Java (supportées par Flyway) : Les migrations sont des classes Java utilisant l'API JDBC. Idéal pour traiter les LOBs et les transformations de données complexes. Peuvent ou non être compatibles avec d'autres bases de données. Verrouillage des fournisseurs (peut ou non être un problème).
Une petite note sur la portabilité des DDL : les BD en mémoire comme H2 ont de bons modes de compatibilité avec les BD "réelles". Cela peut éliminer le besoin d'une abstraction supplémentaire.
Ce sont d'autres facteurs de différenciation potentiels à rechercher :
- si vous souhaitez utiliser les vidages de bases de données (y compris ceux utilisant PL/SQL, T-SQL ou les procédures stockées de MySQL et PostgreSQL) : Optez pour Flyway.
- si la DDL est incompatible entre les bases de données, que le XML de Liquibase ne vous dérange pas et que vous n'avez pas besoin de fonctionnalités avancées spécifiques au fournisseur : Choisissez Liquibase.
- si vous avez besoin d'un support pour une BD non supportée par Flyway : Choisissez Liquibase.
- si vous avez besoin d'un support pour les LOBs (dans les données de référence par exemple) : Optez pour Flyway.
Cela nous amène à la question suivante simplicité et intégration des applications . C'est dans ce domaine que je pense que Flyway brille. Il est très léger et le intégration des applications ne pourrait pas être plus facile.
Pour faire une longue histoire courte et dans l'esprit de YAGNI : utiliser l'outil le plus simple qui correspond à vos besoins .
Note : La question des migrations descendantes est un faux-fuyant comme je l'ai décrit. ici
Clause de non-responsabilité : Je suis l'un des développeurs de Flyway et j'attends avec impatience vos commentaires. :-)