(R)évolutionnez vos bases dedonnées avec Liquibase !                      par Florent Biville                             ...
Plan•   Refactoring sur bases de données : une pratique oubliée ?•   Liquibase to the rescue !•   La preuve en live ;)    ...
About.me•   Depuis 1986, Florent Biville - @fbiville•   Depuis 2009, utilisateur de Liquibase•   Depuis 2012, développeur ...
Question pour un champion« Acronyme anglais, je désigne un mécanisme permettant de contrôler,versionner et rapporter les c...
Refactoring et BDDRefactoring ?Changements dune structure existante sans altération de son                        1comport...
Refactoring et BDDRefactoring sur base de données ?Changements dune structure existante sans altération de soncomportement...
Refactoring et BDDÇa se complique•   Pas de « bug » à proprement parler•   1 BDD est souvent partagée par plusieurs applic...
Refactoring et BDDIl était une fois lévolution•   Collaboration étroite entre DBAs et dévs (voire suppression des DBA ?)• ...
Liquibase•   Gestionnaire incrémental de migrations•   Opérations décrites par fichiers XML (donc versionnables !)•   Déco...
LiquibaseEn quelques faits•   Projet Java, https://github.com/liquibase/liquibase/•   Première release : 2006•   Version a...
LiquibaseOrganisation en changesets<changeSet id="initial_structure" author="florent.biville">  <createTable schemaName="h...
LiquibaseUnder the hoodChangeset identifié par son ID, auteur, timestamp dexécution etchecksum.Changeset joué une seule fo...
LiquibaseIntégration•   Ligne de commande, Ant, plugin Maven•   Listener de Servlets•   Spring                            ...
Le poids   démoBut : persister les votes des électeurs de 2012 !                                                    14
Et ailleurs ?•   Rails Migrations (guides.rubyonrails.org/migrations.html)•   Grails Database Migration (dérivé de Liquiba...
Merci !          16
Prochain SlideShare
Chargement dans…5
×

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

2 233 vues

Publié le

Quickie given at Devoxx FR, April 2012.

Publié dans : Technologie
1 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 233
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
0
Commentaires
1
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. (R)évolutionnez vos bases dedonnées avec Liquibase ! par Florent Biville @fbiville 1
  2. 2. Plan• Refactoring sur bases de données : une pratique oubliée ?• Liquibase to the rescue !• La preuve en live ;) 2
  3. 3. About.me• Depuis 1986, Florent Biville - @fbiville• Depuis 2009, utilisateur de Liquibase• Depuis 2012, développeur padawan à @LateralThoughts 3
  4. 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èmelogiciel. Je suis, je suis... » 4
  5. 5. Refactoring et BDDRefactoring ?Changements dune structure existante sans altération de son 1comportement observable 1 http://martinfowler.com/bliki/DefinitionOfRefactoring.html 5
  6. 6. Refactoring et BDDRefactoring sur base de données ?Changements dune structure existante sans altération de soncomportement et de ses informations 6
  7. 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. 8. Refactoring et BDDIl é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. 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. 10. LiquibaseEn 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. 11. LiquibaseOrganisation 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. 12. LiquibaseUnder the hoodChangeset identifié par son ID, auteur, timestamp dexécution etchecksum.Changeset joué une seule fois, modification interdite (valeurs par défaut de runAlwayset runOnChange).Historique stocké dans la table DATABASECHANGELOG. 12
  13. 13. LiquibaseIntégration• Ligne de commande, Ant, plugin Maven• Listener de Servlets• Spring 13
  14. 14. Le poids démoBut : persister les votes des électeurs de 2012 ! 14
  15. 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. 16. Merci ! 16

×