SlideShare ist ein Scribd-Unternehmen logo
1 von 16
(R)évolutionnez vos bases de
données avec Liquibase !

                      par Florent Biville
                               @fbiville

                                            1
Plan


•   Refactoring sur bases de données : une pratique oubliée ?

•   Liquibase to the rescue !

•   La preuve en live ;)




                                                                2
About.me


•   Depuis 1986, Florent Biville - @fbiville

•   Depuis 2009, utilisateur de Liquibase

•   Depuis 2012, développeur padawan à @LateralThoughts




                                                          3
Question pour un champion


« Acronyme anglais, je désigne un mécanisme permettant de contrôler,
versionner et rapporter les changements effectués sur un système
logiciel. Je suis, je suis... »




                                                                       4
Refactoring et BDD


Refactoring ?
Changements d'une structure existante sans altération de son
                        1
comportement observable




            1
                http://martinfowler.com/bliki/DefinitionOfRefactoring.html
                                                                             5
Refactoring et BDD


Refactoring sur base de données ?
Changements d'une structure existante sans altération de son
comportement et de ses informations




                                                               6
Refactoring et BDD

Ça se complique
•   Pas de « bug » à proprement parler

•   1 BDD est souvent partagée par plusieurs applications

•   Équipes de DBA souvent séparées des équipes de dév.



                                                            7
Refactoring et BDD

Il était une fois l'évolution
•   Collaboration étroite entre DBAs et dévs (voire suppression des DBA ?)

•   À chacun son instance de BDD

•   Automatisation des refactorings et autres mises à jour



                                                                             8
Liquibase


•   Gestionnaire incrémental de migrations

•   Opérations décrites par fichiers XML (donc versionnables !)

•   Découpage des opérations en changesets (transactionnels)



                               1
                                   http://www.liquibase.org/databases
                                                                        9
Liquibase

En quelques faits
•   Projet Java, https://github.com/liquibase/liquibase/

•   Première release : 2006

•   Version actuelle : 2.0.3 (10 Octobre 2011), licence Apache 2.0

•   Support : MySQL, Oracle, PostgreSQL, DB2, MSSQL... 1

                                  1
                                      http://www.liquibase.org/databases
                                                                           10
Liquibase
Organisation en changesets
<changeSet id="initial_structure" author="florent.biville">
  <createTable schemaName="hello" tableName="world">
    <column name="id" type="INTEGER" autoIncrement="true">
        <constraints primaryKey="true" />
    </column>
    <column name="nickname" type="VARCHAR(50)" />
  </createTable>
</changeSet>

<changeSet id="data_import" author="florent.biville">
  <!--<sqlFile path="IHateXML.sql" relativeToChangelogFile="true" />-->
  <insert schemaName="hello" tableName="world">
     <column name="nickname" value="fbiville" />
  </insert>
</changeSet>


                                                                          11
Liquibase

Under the hood
Changeset identifié par son ID, auteur, timestamp d'exécution et
checksum.

Changeset joué une seule fois, modification interdite (valeurs par défaut de runAlways
et runOnChange).


Historique stocké dans la table DATABASECHANGELOG.


                                                                                         12
Liquibase

Intégration
•   Ligne de commande, Ant, plugin Maven

•   Listener de Servlets

•   Spring




                                           13
Le poids   démo
But : persister les votes des électeurs de 2012 !




                                                    14
Et ailleurs ?


•   Rails Migrations (guides.rubyonrails.org/migrations.html)

•   Grails Database Migration (dérivé de Liquibase, grails-plugins.github.com/grails-database-
    migration/)


•   Et bien plus encore... (http://www.quora.com/What-are-the-alternatives-to-LiquiBase)




                                                                                                 15
Merci !



          16

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 partager
aliagadir
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
infcom
 
De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013
Stephane Manciot
 

Was ist angesagt? (20)

Les nouveautés de MySQL 5.1
Les nouveautés de MySQL 5.1Les nouveautés de MySQL 5.1
Les nouveautés de MySQL 5.1
 
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
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
 
ToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & AgilitéToulouseJUG - REX Flex, Spring & Agilité
ToulouseJUG - REX Flex, Spring & Agilité
 
Play Framework - Toulouse JUG - nov 2011
Play Framework - Toulouse JUG - nov 2011Play Framework - Toulouse JUG - nov 2011
Play Framework - Toulouse JUG - nov 2011
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
YaJUG - Spring 3.0
YaJUG - Spring 3.0YaJUG - Spring 3.0
YaJUG - Spring 3.0
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReport
 
Administration oracle7
Administration oracle7Administration oracle7
Administration oracle7
 
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
 
Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Roy
 
ParisJUG Spring Boot
ParisJUG Spring BootParisJUG Spring Boot
ParisJUG Spring Boot
 
Db aing td2v1
Db aing td2v1Db aing td2v1
Db aing td2v1
 
De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013De Maven à SBT ScalaIO 2013
De Maven à SBT ScalaIO 2013
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Bases de données réparties par la pratique
Bases de données réparties par la pratiqueBases de données réparties par la pratique
Bases de données réparties par la pratique
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
Spring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien RoySpring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien Roy
 

Andere mochten auch

Cerca d’informació a Internet: implicacions jurídiques
Cerca d’informació a Internet: implicacions jurídiquesCerca d’informació a Internet: implicacions jurídiques
Cerca d’informació a Internet: implicacions jurídiques
Julià Minguillón
 
49 rapport activité cdsp 2012
49 rapport activité cdsp 201249 rapport activité cdsp 2012
49 rapport activité cdsp 2012
CCDH75
 
39 rapport activité cdsp 2012
39 rapport activité cdsp 201239 rapport activité cdsp 2012
39 rapport activité cdsp 2012
CCDH75
 
Monuments à poznańvictoria
Monuments à poznańvictoriaMonuments à poznańvictoria
Monuments à poznańvictoria
letidod
 

Andere mochten auch (20)

DevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4JDevFest Istanbul - a free guided tour of Neo4J
DevFest Istanbul - a free guided tour of Neo4J
 
Soft Shake Event / A soft introduction to Neo4J
Soft Shake Event / A soft introduction to Neo4JSoft Shake Event / A soft introduction to Neo4J
Soft Shake Event / A soft introduction to Neo4J
 
Why Neo4J is awesome in 5 slides
Why Neo4J is awesome in 5 slidesWhy Neo4J is awesome in 5 slides
Why Neo4J is awesome in 5 slides
 
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
Hands on Neo4J - Duchess France/Zenexity - 25/09/2013
 
[FR] Introduction à Spring Data Neo4j 3.x
[FR] Introduction à Spring Data Neo4j 3.x[FR] Introduction à Spring Data Neo4j 3.x
[FR] Introduction à Spring Data Neo4j 3.x
 
A general introduction to Spring Data / Neo4J
A general introduction to Spring Data / Neo4JA general introduction to Spring Data / Neo4J
A general introduction to Spring Data / Neo4J
 
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
 
Production pour les 4 écrans
Production pour les 4 écransProduction pour les 4 écrans
Production pour les 4 écrans
 
Lesson 27
Lesson 27Lesson 27
Lesson 27
 
Laxatif pour maigrir - Bonne ou mauvaise idée ?
Laxatif pour maigrir - Bonne ou mauvaise idée ?Laxatif pour maigrir - Bonne ou mauvaise idée ?
Laxatif pour maigrir - Bonne ou mauvaise idée ?
 
photo rules
photo rulesphoto rules
photo rules
 
Cerca d’informació a Internet: implicacions jurídiques
Cerca d’informació a Internet: implicacions jurídiquesCerca d’informació a Internet: implicacions jurídiques
Cerca d’informació a Internet: implicacions jurídiques
 
49 rapport activité cdsp 2012
49 rapport activité cdsp 201249 rapport activité cdsp 2012
49 rapport activité cdsp 2012
 
Les implicites-de-la-crise-malgache-de-2009 (pitchboule)
Les implicites-de-la-crise-malgache-de-2009 (pitchboule)Les implicites-de-la-crise-malgache-de-2009 (pitchboule)
Les implicites-de-la-crise-malgache-de-2009 (pitchboule)
 
39 rapport activité cdsp 2012
39 rapport activité cdsp 201239 rapport activité cdsp 2012
39 rapport activité cdsp 2012
 
Google Plus et les Conseils généraux (avril 2014)
Google Plus et les Conseils généraux (avril 2014) Google Plus et les Conseils généraux (avril 2014)
Google Plus et les Conseils généraux (avril 2014)
 
Monuments à poznańvictoria
Monuments à poznańvictoriaMonuments à poznańvictoria
Monuments à poznańvictoria
 
Mecenat KangouRoux_formation_du_24_avril_2012
Mecenat KangouRoux_formation_du_24_avril_2012Mecenat KangouRoux_formation_du_24_avril_2012
Mecenat KangouRoux_formation_du_24_avril_2012
 
Cursos Formacion Bsc Frances
Cursos Formacion Bsc FrancesCursos Formacion Bsc Frances
Cursos Formacion Bsc Frances
 

Ähnlich wie (R)évolutionnez vos bases de données avec Liquibase

Wiki aide presentation de la solution
Wiki aide   presentation de la solutionWiki aide   presentation de la solution
Wiki aide presentation de la solution
Harvey Francois
 
Col209 share point - migration
Col209   share point - migrationCol209   share point - migration
Col209 share point - migration
Mouhamadou Diallo
 
De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...
De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...
De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...
Scaleway
 
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
LeTesteur
 

Ähnlich wie (R)évolutionnez vos bases de données avec Liquibase (20)

Versionning et travail en équipe avec Salesforce - 27/11/2014
Versionning et travail en équipe avec Salesforce - 27/11/2014Versionning et travail en équipe avec Salesforce - 27/11/2014
Versionning et travail en équipe avec Salesforce - 27/11/2014
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Wiki aide presentation de la solution
Wiki aide   presentation de la solutionWiki aide   presentation de la solution
Wiki aide presentation de la solution
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Java EE, un ami qui vous veut du bien
Java EE, un ami qui vous veut du bienJava EE, un ami qui vous veut du bien
Java EE, un ami qui vous veut du bien
 
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de ...
 
Xebicon architectures microservices azure v1.0
Xebicon   architectures microservices azure v1.0Xebicon   architectures microservices azure v1.0
Xebicon architectures microservices azure v1.0
 
Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...
Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...
Migration à SharePoint 2013 : onPrem, Online ou hybride, les bonnes pratiques...
 
Col209 share point - migration
Col209   share point - migrationCol209   share point - migration
Col209 share point - migration
 
Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Gestion applicative des données, un REX du Ministère de l'Éducation Nationale
Gestion applicative des données, un REX du Ministère de l'Éducation NationaleGestion applicative des données, un REX du Ministère de l'Éducation Nationale
Gestion applicative des données, un REX du Ministère de l'Éducation Nationale
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référence
 
GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)
 
Drupagora linagora-20111110
Drupagora linagora-20111110Drupagora linagora-20111110
Drupagora linagora-20111110
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
Alfresco 4.0 en français
Alfresco 4.0 en françaisAlfresco 4.0 en français
Alfresco 4.0 en français
 
De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...
De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...
De la DB à la DB-as-a-Service : avantages, limites et étapes pour franchir l...
 
yOS Tour Genève - SharePoint 2013 : Comment gérer au mieux les fichiers volum...
yOS Tour Genève - SharePoint 2013 : Comment gérer au mieux les fichiers volum...yOS Tour Genève - SharePoint 2013 : Comment gérer au mieux les fichiers volum...
yOS Tour Genève - SharePoint 2013 : Comment gérer au mieux les fichiers volum...
 
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
 

(R)évolutionnez vos bases de données avec Liquibase

  • 1. (R)évolutionnez vos bases de données avec Liquibase ! par Florent Biville @fbiville 1
  • 2. Plan • Refactoring sur bases de données : une pratique oubliée ? • Liquibase to the rescue ! • La preuve en live ;) 2
  • 3. About.me • Depuis 1986, Florent Biville - @fbiville • Depuis 2009, utilisateur de Liquibase • Depuis 2012, développeur padawan à @LateralThoughts 3
  • 4. Question pour un champion « Acronyme anglais, je désigne un mécanisme permettant de contrôler, versionner et rapporter les changements effectués sur un système logiciel. Je suis, je suis... » 4
  • 5. Refactoring et BDD Refactoring ? Changements d'une structure existante sans altération de son 1 comportement observable 1 http://martinfowler.com/bliki/DefinitionOfRefactoring.html 5
  • 6. Refactoring et BDD Refactoring sur base de données ? Changements d'une structure existante sans altération de son comportement et de ses informations 6
  • 7. Refactoring et BDD Ça se complique • Pas de « bug » à proprement parler • 1 BDD est souvent partagée par plusieurs applications • Équipes de DBA souvent séparées des équipes de dév. 7
  • 8. Refactoring et BDD Il était une fois l'évolution • Collaboration étroite entre DBAs et dévs (voire suppression des DBA ?) • À chacun son instance de BDD • Automatisation des refactorings et autres mises à jour 8
  • 9. Liquibase • Gestionnaire incrémental de migrations • Opérations décrites par fichiers XML (donc versionnables !) • Découpage des opérations en changesets (transactionnels) 1 http://www.liquibase.org/databases 9
  • 10. Liquibase En quelques faits • Projet Java, https://github.com/liquibase/liquibase/ • Première release : 2006 • Version actuelle : 2.0.3 (10 Octobre 2011), licence Apache 2.0 • Support : MySQL, Oracle, PostgreSQL, DB2, MSSQL... 1 1 http://www.liquibase.org/databases 10
  • 11. Liquibase Organisation en changesets <changeSet id="initial_structure" author="florent.biville"> <createTable schemaName="hello" tableName="world"> <column name="id" type="INTEGER" autoIncrement="true"> <constraints primaryKey="true" /> </column> <column name="nickname" type="VARCHAR(50)" /> </createTable> </changeSet> <changeSet id="data_import" author="florent.biville"> <!--<sqlFile path="IHateXML.sql" relativeToChangelogFile="true" />--> <insert schemaName="hello" tableName="world"> <column name="nickname" value="fbiville" /> </insert> </changeSet> 11
  • 12. Liquibase Under the hood Changeset identifié par son ID, auteur, timestamp d'exécution et checksum. Changeset joué une seule fois, modification interdite (valeurs par défaut de runAlways et runOnChange). Historique stocké dans la table DATABASECHANGELOG. 12
  • 13. Liquibase Intégration • Ligne de commande, Ant, plugin Maven • Listener de Servlets • Spring 13
  • 14. Le poids démo But : persister les votes des électeurs de 2012 ! 14
  • 15. Et ailleurs ? • Rails Migrations (guides.rubyonrails.org/migrations.html) • Grails Database Migration (dérivé de Liquibase, grails-plugins.github.com/grails-database- migration/) • Et bien plus encore... (http://www.quora.com/What-are-the-alternatives-to-LiquiBase) 15
  • 16. Merci ! 16