SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Liquibase
Source control for your database
Liquibase
● L’existant
● Les problèmes rencontrés
● La solution : Liquibase
● Et après
● Questions
L’existant
L’existant
● Réalisation d’un schéma sous powerAMC
(MPD)
○ Permet de normaliser les relations
○ Partage du schéma via le référentiel (internes /
service stats / RAP)
○ Ajout des schémas dans confluence
L’existant
● Récupération des scripts SQL depuis
PowerAMC
○ Dans le meilleur des cas : génération de tous les
scripts si “from scratch”
○ Récupération de morceau de script via la
prévisualisation
L’existant
● Création des script pour la base H2
○ Permet de monter une base de données et de
charger un jeu de données à chaud pour la
réalisation des tests d’intégration
● Création des scripts pour la MEP
○ Ajout de ces scripts au document de MEP sous
confluence
Les problèmes rencontrés
Les problèmes rencontrés
● PowerAMC
○ Génération des scripts ok si “from scratch” mais
gestion des deltas très peu intuitive et aléatoire
○ Suivi des évolutions et des versions compliquées et
peu intuitive
Les problèmes rencontrés
● H2
○ Script de chargement à maintenir spécifiquement
pour les tests
○ Retravaille des scripts depuis PowerAMC
systématique
Les problèmes rencontrés
● Script pour la MEP
○ Demande une grande rigueur dans la maintenance
des scripts
○ Retour arrière presque jamais réalisé
○ Exécution manuelle uniquement
○ Partage et suivi des évolutions des scripts
laborieuses
La solution : Liquibase
La solution : Liquibase
● Langage XML pour décrire les scripts à
exécuter en base
○ Même langage de script quelque soit la base de
données (MySQL, H2, etc.)
○ Format arborescent pour une meilleur lisibilité des
blocs de chargement
La solution : Liquibase
La solution : Liquibase
● Permet de suivre les évolutions des scripts
via SVN
○ Utilisation d’outils connus et standards (SVN)
○ Meilleur suivi des évolutions des schémas
La solution : Liquibase
La solution : Liquibase
● Lancement des scripts au chargement de l’
application
○ Permet de faire des exécutions conditionnelles et
de prévoir des scripts de retour arrière
○ Intégration des scripts de chargement de la base de
données dans les livrables (WAR)
○ Un pas vers l’industrialisation des livrables
La solution : Liquibase
La solution : Liquibase
web.xml
applicationContext.xml
La solution : Liquibase
● Suivi des scripts déjà chargés directement
dans des tables spécifiques Liquibase
○ Création par Liquibase de deux tables : lock de
chargement, suivi des scripts
○ Tolérance au clustering
○ Possibilité de faire un reverse engineering sur l’
existant et de considéré les scripts obtenus déjà
exécutés
La solution : Liquibase
La solution : Liquibase
Et après
Et après
● Suppression des droits en écriture en
intégration et production
○ Oblige à la réalisation des scripts via liquibase pour
livraison en intégration
○ Permet de garantir le suivi des évolutions en base
de données
○ Fonctionnement par alter
Et après
● Un super-user connu par 3 personnes avec
les droits en écriture en secours
○ Permet de prévoir les cas ou Liquibase n’est pas
approprié
○ Permet d’intervenir en urgence sur des problèmes
de production
Et après
● Réalisation des scripts de chargement H2 à
l’aide de Liquibase
○ Plus de maintenance des scripts spécifiques H2 en
dehors des données de test
○ Une méthode, un seul type de fichier pour charger
les bases H2 et charger/mettre à jour les bases
MySQL
Et après
● Quelques limites
○ Chargement des scripts au démarrage des
applications => scripts à exécution relativement
rapide
○ Autres limites à découvrir
Et après
MISE EN PLACE ASAP !!!!
Questions ?

Weitere ähnliche Inhalte

Was ist angesagt?

Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3sitengo
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011Normandy JUG
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationSoukaina Boujadi
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en JavaFlorian Beaufumé
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatMohamed Ben Bouzid
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another frameworkLAHAXE Arnaud
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaOlivier BAZOUD
 
Réplication des bases de données
Réplication des bases de donnéesRéplication des bases de données
Réplication des bases de donnéessie92
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReportLilia Sfaxi
 
Programmation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et ReactorProgrammation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et ReactorFlorian Beaufumé
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcminfcom
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1infcom
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniOlivier DASINI
 
ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéNicolas Deverge
 
Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de donnéesSoukaina Boujadi
 

Was ist angesagt? (20)

Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3T3UNIFR12 - Réussir sa mise à jour de typo3
T3UNIFR12 - Réussir sa mise à jour de typo3
 
WebSocket avec Java EE 7
WebSocket avec Java EE 7WebSocket avec Java EE 7
WebSocket avec Java EE 7
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011
 
Concepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupérationConcepts de sauvegarde et de récupération
Concepts de sauvegarde et de récupération
 
#9 Deploiement Complexe
#9 Deploiement Complexe#9 Deploiement Complexe
#9 Deploiement Complexe
 
Programmation concurrente en Java
Programmation concurrente en JavaProgrammation concurrente en Java
Programmation concurrente en Java
 
Installation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de TomcatInstallation et Configuration ee JDK et de Tomcat
Installation et Configuration ee JDK et de Tomcat
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another framework
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
Réplication des bases de données
Réplication des bases de donnéesRéplication des bases de données
Réplication des bases de données
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReport
 
Programmation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et ReactorProgrammation réactive avec Spring 5 et Reactor
Programmation réactive avec Spring 5 et Reactor
 
Spring Batch Avance
Spring Batch AvanceSpring Batch Avance
Spring Batch Avance
 
T1 corrections-qcm
T1 corrections-qcmT1 corrections-qcm
T1 corrections-qcm
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 
ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & Agilité
 
Sauvegardes de base de données
Sauvegardes de base de donnéesSauvegardes de base de données
Sauvegardes de base de données
 
Présentation1
Présentation1Présentation1
Présentation1
 

Andere mochten auch

Liquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsLiquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsAndrei Solntsev
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDan Stine
 
LA TELEFONIA
LA TELEFONIALA TELEFONIA
LA TELEFONIAzahidel
 
Moovaxis.com : Trucs et astuces pour gagner vos affaires...
Moovaxis.com : Trucs et astuces pour gagner vos affaires...Moovaxis.com : Trucs et astuces pour gagner vos affaires...
Moovaxis.com : Trucs et astuces pour gagner vos affaires...Moovaxis
 
07 - Assessment - Richard Bramwell.PDF
07 - Assessment - Richard Bramwell.PDF07 - Assessment - Richard Bramwell.PDF
07 - Assessment - Richard Bramwell.PDFRichard Bramwell
 
Tema 9 celula eucariota 2
Tema 9 celula eucariota 2Tema 9 celula eucariota 2
Tema 9 celula eucariota 2Julio Sanchez
 
Gladiator - Les anachronismes concernant légionnaires et prétoriens
Gladiator - Les anachronismes concernant légionnaires et prétoriensGladiator - Les anachronismes concernant légionnaires et prétoriens
Gladiator - Les anachronismes concernant légionnaires et prétoriensPolyxenia66
 
Publicitador
PublicitadorPublicitador
PublicitadorThinnkers
 

Andere mochten auch (20)

Java 8
Java 8Java 8
Java 8
 
Faciliter Une Réunion
Faciliter Une RéunionFaciliter Une Réunion
Faciliter Une Réunion
 
Liquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOpsLiquibase & Flyway @ Baltic DevOps
Liquibase & Flyway @ Baltic DevOps
 
Database Migrations with Gradle and Liquibase
Database Migrations with Gradle and LiquibaseDatabase Migrations with Gradle and Liquibase
Database Migrations with Gradle and Liquibase
 
Rodaje De Octopuchy
Rodaje De OctopuchyRodaje De Octopuchy
Rodaje De Octopuchy
 
Tema 13
Tema 13Tema 13
Tema 13
 
Cv francais
Cv francaisCv francais
Cv francais
 
Catabolismo
CatabolismoCatabolismo
Catabolismo
 
LA TELEFONIA
LA TELEFONIALA TELEFONIA
LA TELEFONIA
 
Tema 1biologia1º
Tema 1biologia1ºTema 1biologia1º
Tema 1biologia1º
 
Moovaxis.com : Trucs et astuces pour gagner vos affaires...
Moovaxis.com : Trucs et astuces pour gagner vos affaires...Moovaxis.com : Trucs et astuces pour gagner vos affaires...
Moovaxis.com : Trucs et astuces pour gagner vos affaires...
 
07 - Assessment - Richard Bramwell.PDF
07 - Assessment - Richard Bramwell.PDF07 - Assessment - Richard Bramwell.PDF
07 - Assessment - Richard Bramwell.PDF
 
Le monde de google
Le monde de google Le monde de google
Le monde de google
 
Tema 9 celula eucariota 2
Tema 9 celula eucariota 2Tema 9 celula eucariota 2
Tema 9 celula eucariota 2
 
Química organica
Química organicaQuímica organica
Química organica
 
Gladiator - Les anachronismes concernant légionnaires et prétoriens
Gladiator - Les anachronismes concernant légionnaires et prétoriensGladiator - Les anachronismes concernant légionnaires et prétoriens
Gladiator - Les anachronismes concernant légionnaires et prétoriens
 
Publicitador
PublicitadorPublicitador
Publicitador
 
Metabolismo
MetabolismoMetabolismo
Metabolismo
 
marseille
marseillemarseille
marseille
 
Croisi re sur-le_danube
Croisi re sur-le_danubeCroisi re sur-le_danube
Croisi re sur-le_danube
 

Ähnlich wie Liquibase

Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPLINAGORA
 
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...Paris Open Source Summit
 
Comment gérer des applications nécessitant la persistance des données avec Ku...
Comment gérer des applications nécessitant la persistance des données avec Ku...Comment gérer des applications nécessitant la persistance des données avec Ku...
Comment gérer des applications nécessitant la persistance des données avec Ku...Florian Woerner
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...Publicis Sapient Engineering
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...MSDEVMTL
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Cellenza
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Saïd Bouras
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jGabriel Pillet 🐙
 
LLVM, clang & c++
LLVM, clang & c++LLVM, clang & c++
LLVM, clang & c++cppfrug
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et DockerStephane Manciot
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Microsoft Technet France
 
Dvcs mercurial - pyxis - eric de carufel
Dvcs   mercurial - pyxis - eric de carufelDvcs   mercurial - pyxis - eric de carufel
Dvcs mercurial - pyxis - eric de carufelEric De Carufel
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfSoumayaMabrouk2
 
Certification mcse communication
Certification mcse communicationCertification mcse communication
Certification mcse communicationEGILIA Learning
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftLeTesteur
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation ConteneurisationTADx
 
Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
Lightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernesLightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernesFrederic Leger
 

Ähnlich wie Liquibase (20)

Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAP
 
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
#OSSPARIS19 - Stream processing : de la base de données classique au streamin...
 
Comment gérer des applications nécessitant la persistance des données avec Ku...
Comment gérer des applications nécessitant la persistance des données avec Ku...Comment gérer des applications nécessitant la persistance des données avec Ku...
Comment gérer des applications nécessitant la persistance des données avec Ku...
 
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
XebiCon'17 : Migration d’une application web vers un Paas Openshift - Akram B...
 
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 
Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017Meetup kafka 21 Novembre 2017
Meetup kafka 21 Novembre 2017
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4j
 
LLVM, clang & c++
LLVM, clang & c++LLVM, clang & c++
LLVM, clang & c++
 
DevOps avec Ansible et Docker
DevOps avec Ansible et DockerDevOps avec Ansible et Docker
DevOps avec Ansible et Docker
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
 
Dvcs mercurial - pyxis - eric de carufel
Dvcs   mercurial - pyxis - eric de carufelDvcs   mercurial - pyxis - eric de carufel
Dvcs mercurial - pyxis - eric de carufel
 
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdfChapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
Chapitre-3-Architectures-Haute-Performance-et-embarquées.pdf
 
Certification mcse communication
Certification mcse communicationCertification mcse communication
Certification mcse communication
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoft
 
Tadx - Présentation Conteneurisation
Tadx -  Présentation ConteneurisationTadx -  Présentation Conteneurisation
Tadx - Présentation Conteneurisation
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Lightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernesLightning talk: Les Load Balancers HTTP modernes
Lightning talk: Les Load Balancers HTTP modernes
 

Liquibase

  • 2. Liquibase ● L’existant ● Les problèmes rencontrés ● La solution : Liquibase ● Et après ● Questions
  • 4. L’existant ● Réalisation d’un schéma sous powerAMC (MPD) ○ Permet de normaliser les relations ○ Partage du schéma via le référentiel (internes / service stats / RAP) ○ Ajout des schémas dans confluence
  • 5. L’existant ● Récupération des scripts SQL depuis PowerAMC ○ Dans le meilleur des cas : génération de tous les scripts si “from scratch” ○ Récupération de morceau de script via la prévisualisation
  • 6. L’existant ● Création des script pour la base H2 ○ Permet de monter une base de données et de charger un jeu de données à chaud pour la réalisation des tests d’intégration ● Création des scripts pour la MEP ○ Ajout de ces scripts au document de MEP sous confluence
  • 8. Les problèmes rencontrés ● PowerAMC ○ Génération des scripts ok si “from scratch” mais gestion des deltas très peu intuitive et aléatoire ○ Suivi des évolutions et des versions compliquées et peu intuitive
  • 9. Les problèmes rencontrés ● H2 ○ Script de chargement à maintenir spécifiquement pour les tests ○ Retravaille des scripts depuis PowerAMC systématique
  • 10. Les problèmes rencontrés ● Script pour la MEP ○ Demande une grande rigueur dans la maintenance des scripts ○ Retour arrière presque jamais réalisé ○ Exécution manuelle uniquement ○ Partage et suivi des évolutions des scripts laborieuses
  • 11. La solution : Liquibase
  • 12. La solution : Liquibase ● Langage XML pour décrire les scripts à exécuter en base ○ Même langage de script quelque soit la base de données (MySQL, H2, etc.) ○ Format arborescent pour une meilleur lisibilité des blocs de chargement
  • 13. La solution : Liquibase
  • 14. La solution : Liquibase ● Permet de suivre les évolutions des scripts via SVN ○ Utilisation d’outils connus et standards (SVN) ○ Meilleur suivi des évolutions des schémas
  • 15. La solution : Liquibase
  • 16. La solution : Liquibase ● Lancement des scripts au chargement de l’ application ○ Permet de faire des exécutions conditionnelles et de prévoir des scripts de retour arrière ○ Intégration des scripts de chargement de la base de données dans les livrables (WAR) ○ Un pas vers l’industrialisation des livrables
  • 17. La solution : Liquibase
  • 18. La solution : Liquibase web.xml applicationContext.xml
  • 19. La solution : Liquibase ● Suivi des scripts déjà chargés directement dans des tables spécifiques Liquibase ○ Création par Liquibase de deux tables : lock de chargement, suivi des scripts ○ Tolérance au clustering ○ Possibilité de faire un reverse engineering sur l’ existant et de considéré les scripts obtenus déjà exécutés
  • 20. La solution : Liquibase
  • 21. La solution : Liquibase
  • 23. Et après ● Suppression des droits en écriture en intégration et production ○ Oblige à la réalisation des scripts via liquibase pour livraison en intégration ○ Permet de garantir le suivi des évolutions en base de données ○ Fonctionnement par alter
  • 24. Et après ● Un super-user connu par 3 personnes avec les droits en écriture en secours ○ Permet de prévoir les cas ou Liquibase n’est pas approprié ○ Permet d’intervenir en urgence sur des problèmes de production
  • 25. Et après ● Réalisation des scripts de chargement H2 à l’aide de Liquibase ○ Plus de maintenance des scripts spécifiques H2 en dehors des données de test ○ Une méthode, un seul type de fichier pour charger les bases H2 et charger/mettre à jour les bases MySQL
  • 26. Et après ● Quelques limites ○ Chargement des scripts au démarrage des applications => scripts à exécution relativement rapide ○ Autres limites à découvrir
  • 27. Et après MISE EN PLACE ASAP !!!!