Liquibase

Liquibase

Informations
Dernière version 5.0.1 ()
Dépôt github.com/liquibase/liquibase
Écrit en Java
Environnement Linux, Mac, Windows
Type Développement de logiciel
Licence FSL-1.1-ALv2
Site web https://www.liquibase.com

Liquibase est une bibliothèque indépendante des SGBD permettant de suivre, gérer et appliquer des modifications aux schémas des bases de données. Elle est désormais publiée sous la licence Functional Source License qui n'est pas open source. Elle a été lancée en 2006 pour faciliter le suivi des modifications de bases de données, en particulier dans un environnement de développement logiciel agile.

Présentation

Toutes les modifications appliquées à une base de données sont sauvegardées au sein de fichiers texte (XML, YAML, JSON ou SQL) et identifiées par la combinaison d'un identifiant et d'un auteur ainsi que du nom de fichier en lui-même. Une liste de tous ces changements est stockée au sein de chaque base de données et consultée au besoin pour chacun des nouvelles modifications afin de déterminer les modifications à apporter.

Par conséquent, il n'existe pas de concept de versionnage de base de données. Cette approche permet cependant de travailler dans des environnements dans lesquels évoluent plusieurs développeurs.

Liquibase crée automatiquement les tables DatabaseChangeLog et DatabaseChangeLogLock à la première exécution d'un fichier changeLog.

Fonctionnalités principales

  • Plus de 30 types de refontes de base de données proposées nativement
  • Capacité à être étendue pour créer des modifications personnalisées
  • Mise à jour vers la version courante
  • Annuler les X derniers changements apportés à une base de données
  • Revenir à l'état de la base de données à un horaire précis
  • Revenir à l'état de la base de données marqué par une étiquette donnée
  • Le SQL des mises à jour ou du retour arrière des bases de données peut être sauvegardé afin de pouvoir procéder à une inspection visuelle
  • Environnement de développement dédié et greffon Eclipse
  • "Contextes" permettant d'inclure ou d'exclure des séries de modifications à exécuter
  • Rapport des différences pour un schéma de base de données
  • Journal de changements apportés à un schéma de base de données
  • Possibilité de créer un journal des changements pour générer une base de données existante
  • Génération de documentation sur les changements de schéma
  • Contrôles sur le SGBD, sur l'utilisateur et sur des préconditions SQL
  • Possibilité de répartir les journaux des modifications dans plusieurs fichiers pour en faciliter la gestion
  • Support de 10 systèmes de base de données différents
  • Exécutable en ligne de commande ou via Apache Ant, Maven, Gradle, Docker ou Spring
  • Prise en charge de 62 systèmes de base de données[1]

Exemple d'un journal de modifications Liquibase

Note: bien que ce fichier exemple de journal de modifications soit en XML, liquibase permet également d'utiliser les formats SQL, JSON ou YAML[2].

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.3"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.3
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.3.xsd">
    <preConditions>
        <dbms type="oracle"/>
    </preConditions>

    <changeSet id="1" author="author1">
        <createTable tableName="persons">
            <column name="id" type="int" autoIncrement="true">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="name" type="varchar(50)"/>
        </createTable>
    </changeSet>

    <changeSet id="2" author="author2" context="test">
        <insert tableName="persons">
            <column name="id" value="1"/>
            <column name="name" value="Test1"/>
        </insert>
        <insert tableName="persons">
            <column name="id" value="2"/>
            <column name="name" value="Test2"/>
        </insert>
    </changeSet>
</databaseChangeLog>

Principaux contributeurs

Liquibase a été créé à l'origine en 2006 par Nathan Voxland qui l'a publié en Open source.

En 2012, une compagnie appelée Datical a été fondée pour fournir un support aux entreprises et des outils pour Liquibase. Datical a développé un produit commercial basé sur la version Open source de Liquibase adapté aux entreprises de grande taille et aux régulations auxquelles elles sont soumises. Le projet est resté librement accessible sous licence Apache 2.0. En 2020, Datical a changé de nom pour s'aligner sur celui du projet Open source Liquibase et a introduit un nouveau modèle économique incluant la version communautaire de Liquibase, l'édition Open source ainsi que Liquibase Secure, un produit commercial destiné aux entreprises bâti sur les fondations de l'open source.

Bien que la compagnie offre des outils et des services commerciaux, elle demeure le principal mainteneur et contributeur du projet Open source Liquibase.

Outils similaires

Références

  1. (en) « Supported databases », sur www.liquibase.com (consulté le )
  2. (en) « Changelog file formats », sur docs.liquibase.com (consulté le )

Liens externes

  • icône décorative Portail des logiciels
  • icône décorative Portail des bases de données