Le différenciateur clé entre un fichier de création de schéma autogéré et Liquibase (ou d'autres outils de migration de schéma ) est que ce dernier fournit un journal des modifications de schéma. Il s'agit d'un enregistrement des changements de schéma au fil du temps. Il permet au concepteur de base de données de spécifier les changements de schéma et permet la mise à niveau ou la rétrogradation par programme du schéma à la demande.
Il existe d'autres avantages, tels que:
- Indépendance du fournisseur de base de données (cela est discutable, mais ils essaient)
- documentation automatisée
- diffs de schéma de base de données
Un outil alternatif est flyway .
Vous choisirez d'utiliser un outil de migration de schéma lorsque vous souhaitez ou devez gérer automatiquement les mises à jour de schéma sans perdre de données. Autrement dit, vous vous attendez à ce que le schéma change une fois que votre système a été déployé dans un environnement de longue durée tel qu'un site client ou un environnement de test stable.
J'ai vu liquibase créer une discipline parmi les développeurs lorsqu'il s'agit de modifier le schéma. Vous ne pouvez tout simplement pas écraser les modifications des autres développeurs et les exécuter. Au lieu de cela, vous créez votre propre ensemble de modifications et l'ajoutez à la fin de la séquence de modifications à exécuter. Cela permet également de clarifier quel changement est survenu quand et qui l'a apporté.
Une approche très "versionnée" de la maintenance des schémas.
Pour commencer, cela donne une impression de "travail inutile".
la source
Lorsque vous avez plusieurs instances de base de données en développement, qa, production et que vous souhaitez disposer d'un outil pour suivre automatiquement l'historique des modifications et appliquer les modifications intelligemment (appliquez la différence du schéma actuel et du schéma final), des outils comme liquibase ou flyway seront très utiles .
la source
Je pense que Liquibase est génial lorsque votre philosophie est que la base de données est une réflexion après coup. Cette philosophie est à l'origine de la majorité des mauvaises bases de données en production - et la plupart d'entre elles sont mauvaises. Une base de données doit être conçue avec une vue complète de l'ensemble du système d'entreprise, et non par des développeurs d'applications travaillant chacun dans leurs propres silos. Cette dernière méthode entraîne des solutions de contournement, des données dénormalisées, de mauvaises relations entre les tables, la duplication des domaines d'activité et un système global désordonné et à coût de maintenance élevé que le client détestera peu après le déploiement en raison des problèmes qu'il provoque. Si une base de données est conçue pour refléter EXACTEMENT les relations commerciales, sa durée de vie sera 5 fois plus longue et servira à son objectif 5 fois mieux qu'une base conçue au coup par coup comme malheureusement la plupart le sont.
Liquibase n'est pas un problème en soi, mais il permet aux développeurs d'applications de concevoir la base de données. C'est le problème.
la source
Je pense que pourquoi liquibase peut être répondu si vous passez par l'article ci-dessous http://shengwangi.blogspot.com/2016/04/liquibase-helloworld-example.html
Si vous le lisez attentivement, la possibilité de rétrograder vers une version inférieure à partir d'une version supérieure à l'aide de simples commandes mvn ou CLI est très utile, ce que vous n'obtenez pas si vous passez par l'approche consistant à valider votre fichier sql dans GIT car alors vous devez exécuter manuellement ces scripts et vous n'avez pas non plus le jeu de modifications comme: - qui a fait l'auteur des changements, etc.
la source
En tant que DevOps Person de mon équipe, je préférerais avoir tous mes fichiers SQL au même endroit, c'est-à-dire dans mon SCM (Source Code Management)
Aussi pendant la phase CI / CD, si le schéma de base de données est créé avec lui, cela économise beaucoup de temps et de ressources. Vous n'auriez pas besoin d'avoir une autre personne pour gérer votre base de données pour ce client.
ORM comme Flyway, Liquibase, EF etc. aide à atteindre cet objectif.
la source