Top Banner
SICSone GmbH © 2014 SICSone GmbH Database Change Management Dominik Hirt
26

Database Change Management

Apr 15, 2017

Download

Software

Dominik Hirt
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH SICSone GmbH © 2014 SICSone GmbH

Database Change Management

Dominik Hirt

Page 2: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

IUG Workshop 25.03.2014

Informix Datenbankserver der Gegenwart und Zukunft ?

Page 3: Database Change Management

Copyright © SIC 2012 SICSone 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.

Page 4: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

IUG Workshop 25.03.2014

Informix Datenbankserver der Gegenwart und Zukunft ? Agile / Inkrementelle/ Iterative Software Entwicklung

Page 5: Database Change Management

Copyright © SIC 2012 SICSone 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

Page 6: Database Change Management

Copyright © SIC 2012 SICSone 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

Page 7: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management I

Editor / IDE

Unit Test

SVN / Git

Continuous Integration

Continuous Delivery

Integration Test Agile

Iteration

Page 8: Database Change Management

Copyright © SIC 2012 SICSone 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

Page 9: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

Editor SQLTool DB

Page 10: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

DB Applikation

Impedance Mismatch 1

Page 11: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

DB 1 Testsystem 1

DB 2 Testsystem 2

DB 3 Testsystem 3

Mismatch 2

Page 12: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

DB 1 Trunk

DB 2 Branch 1.x

DB 3 Branch 2.x

Migration ?

Page 13: Database Change Management

Copyright © SIC 2012 SICSone 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

Page 14: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Enterprise Java

!  Einbindung in Buildprozess (Maven / Ant / Gradle)

!   JDBC ready

!  Support für JEE Frameworks (Spring / Hibernate)

Page 15: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Eine Lösung

Page 16: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Eine Lösung

<xml/>

Page 17: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Eine Lösung

Page 18: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

ChangeSet Liquibase

DB

Page 19: Database Change Management

Copyright © SIC 2012 SICSone 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

Page 20: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Erweiterbar / Sicherheit

Page 21: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

#epicfail

Page 22: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Lösung

Page 23: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Lösung

Page 24: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Alternativen

! Flyway

!  Autopatch @ GitHub

! MyBatis Migrations

Page 25: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

ChangeSet UnitTest Commit SCM

Continuous Integration

DB 1 DB 2

Continuous Deployment

Integration Tests

DB 3

Page 26: Database Change Management

Copyright © SIC 2012 SICSone GmbH © 2014 SICSone GmbH

Change Management II

Agile Iteration