Maison >développement back-end >tutoriel php >PHP Master | Version de votre base de données avec Liquibase

PHP Master | Version de votre base de données avec Liquibase

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌original
2025-02-25 22:31:10829parcourir

PHP Master | Versioning Your Database with Liquibase

Points de base

  • Liquibase est un outil open source pour gérer et verser des modifications de schéma de base de données, permettant à des modifications incrémentielles de la base de données d'être organisées en différents ensembles de modifications et appliqués à la base de données. Dans les grandes équipes, il est difficile de partager les changements manuellement et Liquibase est particulièrement utile.
  • Liquibase diffère des autres outils de version / migration de la base de données en ce qu'il est capable de percevoir des changements, ce qui signifie qu'il se concentre sur les modifications apportées, plutôt que de comparer deux instantanés du schéma de base de données pour générer le script de migration. Cela empêche la perte de données en raison de baisser le fonctionnement de l'ajout lors du renommer la colonne.
  • Liquibase stocke les modifications de la base de données dans les fichiers XML, appelés le fichier journal de modification. Les modifications peuvent être enregistrées dans un seul fichier ou dans plusieurs fichiers, puis inclus dans le fichier journal des modifications principales. Dans le fichier journal des modifications, les modifications sont organisées par différents ensembles de modifications, chacun contenant une ou plusieurs modifications à appliquer à la base de données.
  • Liquibase fournit des fonctionnalités de recul qui permet aux développeurs d'annuler les modifications apportées à la base de données. Chaque modification définie dans le journal des modifications peut contenir une section Rollback qui décrit comment annuler le changement si nécessaire.
  • Liquibase peut être utilisé avec n'importe quel système de contrôle de version et prend en charge une variété de systèmes de bases de données, ce qui en fait un outil universel pour gérer les changements de base de données dans une variété d'environnements. Il fournit également un moyen structuré de gérer la reconstruction de la base de données.

La plupart des applications que nous développons sont gérées à l'aide d'un système de contrôle de version. Mais qu'en est-il des bases de données que ces applications utilisent? Nous apportons plus souvent des modifications du développement, des tests et de la production. Cette approche peut fonctionner pour des applications avec seulement un ou deux développeurs, mais dans les grandes équipes avec plusieurs développeurs, partager des changements avec tout le monde devient difficile. Dans cet article, nous discuterons de Liquibase, un outil open source pour gérer et verser des modifications de schéma de base de données. Il nous aide à organiser les changements de base de données incrémentiels en différents ensembles de changements et à les appliquer à la base de données. Liquibase n'est pas le seul outil de version / migration de la base de données. Il existe de nombreuses solutions, telles que les migrations de la doctrine 2, les migrations des rails AR, DBDeploy et plus encore. Les deux premières options sont d'excellentes solutions, mais elles sont spécifiques à la plate-forme. DBDEPLOY est relativement simple, mais il n'est pas aussi riche en fonctionnalités que Liquibase. Liquibase résout de nombreux problèmes non résolus avec d'autres outils de migration de la base de données, tels que la prise en charge de plusieurs développeurs, différents systèmes de SGBD, des branches, etc. En outre, un grave inconvénient de la plupart des outils est qu'ils ne sont pas perçus comme changeants. Au lieu de se concentrer sur les modifications apportées, ils comparent deux instantanés du schéma de base de données pour générer le script de migration. Par conséquent, par exemple, le renommage d'une colonne est considéré comme une opération d'addition de dépôt, ce qui peut entraîner une perte de données. Liquibase est capable de percevoir des changements. Voyons comment utiliser Liquibase dans votre projet.

Comment fonctionne Liquibase

Si vous utilisez un Mac avec Brew, l'installation de Liquibase est facile. Il suffit de courir brew install Liquibase et c'est fait. Il en va de même pour Ubuntu, sudo apt-get install liquibase peut être fait. Liquibase Binary est une application Java multiplateforme, ce qui signifie que vous pouvez télécharger des pots et les utiliser pour Windows, Mac ou Linux. Il est préférable de le sauvegarder dans le dossier du projet afin que quiconque dans le projet puisse l'utiliser sans aucune installation. Lorsque vous utilisez Liquibase, vous stockez des modifications de la base de données dans un fichier XML, communément appelé fichier Changelog. Les modifications peuvent être enregistrées dans un seul fichier ou dans plusieurs fichiers, puis incluses dans le fichier Changelog principal. Une deuxième option est recommandée car elle permet une plus grande flexibilité lorsque l'organisation change. Dans le fichier journal des modifications, vous organisez des modifications par différents ensembles de modifications. Un ensemble de modifications peut contenir une ou plusieurs modifications à s'appliquer à la base de données. Chaque ensemble de modifications peut être identifié de manière unique à l'aide des attributs ID et auteur et le chemin de classe du fichier Changelog. Liquibase crée un tableau (DatabaseChangelog) dans votre base de données pour suivre les modifications qui ont été appliquées avec succès. Liquibase exécute chaque ensemble de modifications un par un et vérifie s'ils ont été appliqués en comparant des sommes de contrôle dans le tableau DatabaseChangelog. S'il n'a pas fonctionné ou n'a pas de balise Runalways, il appliquera les modifications.

débutant

Pour la démonstration, j'ai créé une base de données appelée application sur mon serveur MySQL local, ainsi qu'un fichier journal de modification. Vous pouvez l'enregistrer dans le dossier du projet ou ailleurs, mais le fichier ChangeLog doit être sous contrôle de version. Il s'agit de la première version de notre fichier ChangeLog, sans jeu de modification.

<code class="language-xml"><?xml version="1.0" encoding="UTF-8"?>
<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-2.0.xsd">
</databasechangelog></code>

Accédez à l'emplacement où vous avez enregistré le fichier ChangeLog dans la ligne de commande et exécutez la commande suivante:

<code class="language-bash">liquibase --driver=com.mysql.jdbc.Driver \
     --classpath=../lib/mysql-connector-java-5.1.21-bin.jar \
     --changeLogFile=db.changelog.xml \
     --url="jdbc:mysql://localhost/application" \
     --username=dbuser \
     --password=secret \
     update</code>

Si Liquibase peut se connecter à la base de données avec le nom d'utilisateur et le mot de passe donné, il doit créer deux tables dans la base de données d'application, DatabaseChangelog et DatabaseChangeLoglock, et afficher la sortie suivante:

(Le contenu suivant est omis car il est répété avec le texte d'origine et les réécritures et les ajustements nécessaires ont été effectués pour éviter la sortie répétée.)

(Le reste de l'article nécessite également une réécriture similaire. Tout en maintenant la cohérence du contenu, ajustez la structure et les mots de la phrase pour éviter la duplication.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn