Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Database Change Management

232 views

Published on

Wie bleiben Datenbank Schema und Applikation in sync ? Liquibase !

Published in: Software
  • Be the first to comment

  • Be the first to like this

Database Change Management

  1. 1. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbHSICSone GmbH © 2014 SICSone GmbH Database Change Management Dominik Hirt
  2. 2. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH IUG Workshop 25.03.2014 Informix Datenbankserver der Gegenwart und Zukunft ?
  3. 3. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH IUG Workshop 25.03.2014 Informix Datenbankserver der Gegenwart und Zukunft ? „Prognosen sind schwierig, vor allem wenn sie die Zukunft betreffen“ Niels Bohr u.a.
  4. 4. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH IUG Workshop 25.03.2014 Informix Datenbankserver der Gegenwart und Zukunft ? Agile / Inkrementelle/ Iterative Software Entwicklung
  5. 5. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH IUG Workshop 25.03.2014 Inhalt !  Ziele eines Database Change Managements !  Unterschiede Change Management SourceCode vs. DB !  Spezifika Enterprise Java !  Eine mögliche Lösung !  Diskussion
  6. 6. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH IUG Workshop 25.03.2014 Ziele !  Inkrementelle Änderungen an SourceCode und Datenbank Schema ! SourceCode und Datenbank Schema müssen zueinander passen !  Benutzung von beliebigen Ständen aus der Vergangenheit
  7. 7. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management I Editor / IDE Unit Test SVN / Git Continuous Integration Continuous Delivery Integration Test Agile Iteration
  8. 8. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management I !  Vorteile !   De-Facto Standard in Agilen Teams / Prozesse !   Hohe Flexibilität !   Entwickler sind unabhängig voneinander, inbesondere mit dezentralen SCM (Git) !   Source Code Änderungen immer inkrementell !  Feature Driven Development !   Viele kleine Wasserfälle !   Pro Feature eine Iteration durchlaufen
  9. 9. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II Editor SQLTool DB
  10. 10. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II DBApplikation Impedance Mismatch 1
  11. 11. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II DB 1Testsystem 1 DB 2Testsystem 2 DB 3Testsystem 3 Mismatch 2
  12. 12. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II DB 1Trunk DB 2Branch 1.x DB 3Branch 2.x Migration ?
  13. 13. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Anforderungen !  Inkrementelle Änderungen von DB Schema (und Daten) verwalten !  Integrität von Migrationen !   Nach commit ins SCM !  Verhindern von parallelen Migrationen !  Rollback
  14. 14. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Enterprise Java !  Einbindung in Buildprozess (Maven / Ant / Gradle) !  JDBC ready !  Support für JEE Frameworks (Spring / Hibernate)
  15. 15. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Eine Lösung
  16. 16. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Eine Lösung <xml/>
  17. 17. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Eine Lösung
  18. 18. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II ChangeSet Liquibase DB
  19. 19. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Liquibase ! Structural Refactorings !   Add Column, Rename Column, Modify Column, Drop Column, Alter Sequence, Create Table, Rename Table, Drop Table, Create View, Rename View, Drop View, Merge Columns, Create Stored Procedure !  Data Quality Refactorings !   Add Lookup Table, Add Not-Null Constraint, Remove Not-Null Constraint, Add Unique Constraint, Drop Unique Constraint, Create Sequence, Drop Sequence, Add Auto-Increment, Add Default Value, Drop Default Value ! Referential Integrity Refactorings !   Add Foreign Key Constraint, Drop Foreign Key, Constraint, Drop All Foreign Key Constraints, Add Primary Key Constraint, Drop Primary Key Constraint !  Non-Refactoring Transformations !   Insert Data, Load Data, Load Update Data, Update Data, Delete Data, Tag Database !  Custom Refactorings ! Modifying Generated SQL, Custom SQL, Custom SQL File, Custom Refactoring Class, Execute Shell Command
  20. 20. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Erweiterbar / Sicherheit
  21. 21. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH #epicfail
  22. 22. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Lösung
  23. 23. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Lösung
  24. 24. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Alternativen ! Flyway !  Autopatch @ GitHub ! MyBatis Migrations
  25. 25. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II ChangeSet UnitTest Commit SCM Continuous Integration DB 1 DB 2 Continuous Deployment Integration Tests DB 3
  26. 26. Copyright © SIC 2012SICSone GmbH © 2014 SICSone GmbH Change Management II Agile Iteration

×