Introduction à Liquibase
Qu’est-ce que Liquibase ?
Liquibase est un outil open-source de versioning de base de données. Il permet de gérer, suivre et déployer les changements de schéma, un peu comme Git le fait pour le code.
Pourquoi utiliser Liquibase dans ce projet ?
Dans un projet où la base de données évolue fréquemment, il est important de garder une trace des modifications apportées au schéma. On va alors utiliser Liquibase et des changlogs pour documenter chaque changement. Chaque fois qu’une modification est nécessaire (ajout de table, modification de colonne, etc.), on crée un nouveau changelog. Cela permet de s’assurer que toutes les instances de la base de données sont synchronisées avec le schéma attendu par l’application.
Exemple d’utilisation de Liquibase
Structure d’un changelog
Un changelog est un fichier XML, YAML, JSON ou SQL qui décrit les changements à apporter à la base de données. Voici un exemple simple en XML :
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
<changeSet id="1" author="votre_nom">
<createTable tableName="users">
<column name="id" type="BIGINT" autoIncrement="true">
<constraints primaryKey="true"/>
</column>
<column name="username" type="VARCHAR(255)"/>
</createTable>
</changeSet>
</databaseChangeLog>
Explication du changelog
<databaseChangeLog>: Racine du fichier de changelog.<changeSet>: Définit un ensemble de changements à appliquer. ChaquechangeSetdoit avoir unidunique et unauthor.<createTable>: Crée une nouvelle table dans la base de données.<column>: Définit une colonne dans la table, avec son nom et son type.<constraints>: Spécifie les contraintes sur la colonne, comme la clé primaire.
Bonnes pratiques
- Utiliser des
changeSetpetits et spécifiques pour faciliter la gestion des modifications. - Documenter chaque
changeSetavec des commentaires pour expliquer son but.