Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Liquibase en action
Liquibase en action
Loading in …3
×

Check these out next

1 of 16 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

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

Recently uploaded (20)

Advertisement

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

  1. 1. (R)évolutionnez vos bases de donné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ème logiciel. Je suis, je suis... » 4
  5. 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. 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. 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 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. 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. 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. 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. 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. 13. Liquibase Intégration • Ligne de commande, Ant, plugin Maven • Listener de Servlets • Spring 13
  14. 14. Le poids démo But : 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

×