• Save
(R)évolutionnez vos bases de données avec Liquibase
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,876 views

Quickie given at Devoxx FR, April 2012.

Quickie given at Devoxx FR, April 2012.

Statistics

Views

Total Views
1,876
Views on SlideShare
1,875
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
1

1 Embed 1

https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • (R)évolutionnez vos bases dedonné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èmelogiciel. Je suis, je suis... » 4
  • Refactoring et BDDRefactoring ?Changements dune structure existante sans altération de son 1comportement observable 1 http://martinfowler.com/bliki/DefinitionOfRefactoring.html 5
  • Refactoring et BDDRefactoring sur base de données ?Changements dune structure existante sans altération de soncomportement 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 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
  • 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
  • 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
  • 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
  • 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
  • LiquibaseIntégration• Ligne de commande, Ant, plugin Maven• Listener de Servlets• Spring 13
  • 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 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