zarządzanie zmianami w schemacie relacyjnych baz danych

75
Zarządzanie zmianami w schemacie relacyjnych baz danych Marcin Stachniuk [email protected] http://mstachniuk.blogspot.com @MarcinStachniuk 24 października 2014 Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 1/43

Upload: marcinstachniuk

Post on 21-Jan-2018

23 views

Category:

Software


4 download

TRANSCRIPT

Page 1: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zarządzanie zmianami w schemacie relacyjnychbaz danych

Marcin [email protected]

http://mstachniuk.blogspot.com@MarcinStachniuk

24 października 2014

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 1/43

Page 2: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowa struktura korporacji

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 2/43

Page 3: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowa struktura korporacji

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 3/43

Page 4: Zarządzanie zmianami w schemacie relacyjnych baz danych

Jak działa projekt w korporacji?

Jak zarządzane są zmiany wbazie danych?

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 4/43

Page 5: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 5/43

Page 6: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 6/43

Page 7: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 7/43

Page 8: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 8/43

Page 9: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 9/43

Page 10: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 10/43

Page 11: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 11/43

Page 12: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 12/43

Page 13: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 13/43

Page 14: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 14/43

Page 15: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 15/43

Page 16: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Wady takiego podejścia:

Częste błędy Copy Paste

Zmiany w bazie danych trzeba zgrać z wdrożeniem

Praca bazodanowca sprowadza się do prostych,mechanicznych czynności

Długie przestoje w trakcie wykonywania zmian

Rozmyta odpowiedzialność

Częste błędy miedzy tym czego oczekiwał programista, a cozrobił bazodanowiec

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43

Page 17: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Wady takiego podejścia:

Częste błędy Copy Paste

Zmiany w bazie danych trzeba zgrać z wdrożeniem

Praca bazodanowca sprowadza się do prostych,mechanicznych czynności

Długie przestoje w trakcie wykonywania zmian

Rozmyta odpowiedzialność

Częste błędy miedzy tym czego oczekiwał programista, a cozrobił bazodanowiec

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43

Page 18: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Wady takiego podejścia:

Częste błędy Copy Paste

Zmiany w bazie danych trzeba zgrać z wdrożeniem

Praca bazodanowca sprowadza się do prostych,mechanicznych czynności

Długie przestoje w trakcie wykonywania zmian

Rozmyta odpowiedzialność

Częste błędy miedzy tym czego oczekiwał programista, a cozrobił bazodanowiec

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43

Page 19: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Wady takiego podejścia:

Częste błędy Copy Paste

Zmiany w bazie danych trzeba zgrać z wdrożeniem

Praca bazodanowca sprowadza się do prostych,mechanicznych czynności

Długie przestoje w trakcie wykonywania zmian

Rozmyta odpowiedzialność

Częste błędy miedzy tym czego oczekiwał programista, a cozrobił bazodanowiec

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43

Page 20: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Wady takiego podejścia:

Częste błędy Copy Paste

Zmiany w bazie danych trzeba zgrać z wdrożeniem

Praca bazodanowca sprowadza się do prostych,mechanicznych czynności

Długie przestoje w trakcie wykonywania zmian

Rozmyta odpowiedzialność

Częste błędy miedzy tym czego oczekiwał programista, a cozrobił bazodanowiec

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43

Page 21: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Wady takiego podejścia:

Częste błędy Copy Paste

Zmiany w bazie danych trzeba zgrać z wdrożeniem

Praca bazodanowca sprowadza się do prostych,mechanicznych czynności

Długie przestoje w trakcie wykonywania zmian

Rozmyta odpowiedzialność

Częste błędy miedzy tym czego oczekiwał programista, a cozrobił bazodanowiec

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43

Page 22: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Zalety (?) takiego podejścia:

Oddzielone role programisty i bazodanowca

Każdy się specjalizuje w swojej części

Mniej osób robi zmiany w bazie

Bazodanowcy są odpowiedzialni za backup, uptime, itd.

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 17/43

Page 23: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Zalety (?) takiego podejścia:

Oddzielone role programisty i bazodanowca

Każdy się specjalizuje w swojej części

Mniej osób robi zmiany w bazie

Bazodanowcy są odpowiedzialni za backup, uptime, itd.

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 17/43

Page 24: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa osobno

Zalety (?) takiego podejścia:

Oddzielone role programisty i bazodanowca

Każdy się specjalizuje w swojej części

Mniej osób robi zmiany w bazie

Bazodanowcy są odpowiedzialni za backup, uptime, itd.

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 17/43

Page 25: Zarządzanie zmianami w schemacie relacyjnych baz danych

Jak to zmienić?

A czy można jakoś inaczej?

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 18/43

Page 26: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 19/43

Page 27: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 28: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 29: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 30: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 31: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 32: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 33: Zarządzanie zmianami w schemacie relacyjnych baz danych

Liquibase

Podstawowe właściwości:

Raz definiujemy wygląd naszej bazy

Uruchamiamy na wielu wspieranych bazach danych

Mamy dokumentację zmian

Możemy generować różnice (diff’y)

Generuje SQL do review dla DBA

Wykonuje migrację od punktu w jakim znajduje się bazadanych

Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,JEE CDI

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43

Page 34: Zarządzanie zmianami w schemacie relacyjnych baz danych

Jak działa Liquibase? liquibase:update

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 21/43

Page 35: Zarządzanie zmianami w schemacie relacyjnych baz danych

Jak działa Liquibase? liquibase:updateSQL

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 22/43

Page 36: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 23/43

Page 37: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 24/43

Page 38: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 25/43

Page 39: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 26/43

Page 40: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 27/43

Page 41: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 28/43

Page 42: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 29/43

Page 43: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 30/43

Page 44: Zarządzanie zmianami w schemacie relacyjnych baz danych

Przykładowy workflow z Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 31/43

Page 45: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Wady takiego podejścia:

Wybór formatu pliku (XML, YAML, JSON, SQL)

Wszelkie zmiany muszą być wykonowane przez Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 32/43

Page 46: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Wady takiego podejścia:

Wybór formatu pliku (XML, YAML, JSON, SQL)

Wszelkie zmiany muszą być wykonowane przez Liquibase

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 32/43

Page 47: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Zalety takiego podejścia:

Eliminacja błędów Copy Paste

Działa od razu na wielu bazach

Bezbolesne aktualizacje, nawet ze starych wersji

Pełna automatyzacja

Schemat bazy jest wersjonowany razem z kodem

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 33/43

Page 48: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Zalety takiego podejścia:

Eliminacja błędów Copy Paste

Działa od razu na wielu bazach

Bezbolesne aktualizacje, nawet ze starych wersji

Pełna automatyzacja

Schemat bazy jest wersjonowany razem z kodem

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 33/43

Page 49: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Zalety takiego podejścia:

Eliminacja błędów Copy Paste

Działa od razu na wielu bazach

Bezbolesne aktualizacje, nawet ze starych wersji

Pełna automatyzacja

Schemat bazy jest wersjonowany razem z kodem

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 33/43

Page 50: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Zalety takiego podejścia:

Eliminacja błędów Copy Paste

Działa od razu na wielu bazach

Bezbolesne aktualizacje, nawet ze starych wersji

Pełna automatyzacja

Schemat bazy jest wersjonowany razem z kodem

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 33/43

Page 51: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zespół programistów i bazodanowców działa razem

Zalety takiego podejścia:

Eliminacja błędów Copy Paste

Działa od razu na wielu bazach

Bezbolesne aktualizacje, nawet ze starych wersji

Pełna automatyzacja

Schemat bazy jest wersjonowany razem z kodem

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 33/43

Page 52: Zarządzanie zmianami w schemacie relacyjnych baz danych

Wariant pośredni

Jak sobie radzić, gdy nie do końca można zautomatyzować proceswprowadzania zmian w bazie danych?

Zautomatyzować tyle ile sie da

Progamiści powinni mieć swoje instancje bazy

Programiści muszą mieć możliwość tworzenia i uruchamianiapowtarzalnych testów (najlepiej na docelowej bazie)

Test porównujący schemat bazy danych

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 34/43

Page 53: Zarządzanie zmianami w schemacie relacyjnych baz danych

Wariant pośredni

Jak sobie radzić, gdy nie do końca można zautomatyzować proceswprowadzania zmian w bazie danych?

Zautomatyzować tyle ile sie da

Progamiści powinni mieć swoje instancje bazy

Programiści muszą mieć możliwość tworzenia i uruchamianiapowtarzalnych testów (najlepiej na docelowej bazie)

Test porównujący schemat bazy danych

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 34/43

Page 54: Zarządzanie zmianami w schemacie relacyjnych baz danych

Wariant pośredni

Jak sobie radzić, gdy nie do końca można zautomatyzować proceswprowadzania zmian w bazie danych?

Zautomatyzować tyle ile sie da

Progamiści powinni mieć swoje instancje bazy

Programiści muszą mieć możliwość tworzenia i uruchamianiapowtarzalnych testów (najlepiej na docelowej bazie)

Test porównujący schemat bazy danych

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 34/43

Page 55: Zarządzanie zmianami w schemacie relacyjnych baz danych

Wariant pośredni

Jak sobie radzić, gdy nie do końca można zautomatyzować proceswprowadzania zmian w bazie danych?

Zautomatyzować tyle ile sie da

Progamiści powinni mieć swoje instancje bazy

Programiści muszą mieć możliwość tworzenia i uruchamianiapowtarzalnych testów (najlepiej na docelowej bazie)

Test porównujący schemat bazy danych

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 34/43

Page 56: Zarządzanie zmianami w schemacie relacyjnych baz danych

Wariant pośredni

Jak sobie radzić, gdy nie do końca można zautomatyzować proceswprowadzania zmian w bazie danych?

Zautomatyzować tyle ile sie da

Progamiści powinni mieć swoje instancje bazy

Programiści muszą mieć możliwość tworzenia i uruchamianiapowtarzalnych testów (najlepiej na docelowej bazie)

Test porównujący schemat bazy danych

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 34/43

Page 57: Zarządzanie zmianami w schemacie relacyjnych baz danych

Lepsza struktura organizacji

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 35/43

Page 58: Zarządzanie zmianami w schemacie relacyjnych baz danych

Dobre praktyki korzystania z Liquibase

Organizacja Changelog’ów w wiele plików (plik / release)

Zarządzanie procedurami składowanymi przez Liquibase

Jedna zmiana na jeden ChangeSet

Konwencja nazewnicza dla ID w ChangeSet’ach

Komentarze w ChangeSet’ach

Myśl od rolback’u

http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 36/43

Page 59: Zarządzanie zmianami w schemacie relacyjnych baz danych

Dobre praktyki korzystania z Liquibase

Organizacja Changelog’ów w wiele plików (plik / release)

Zarządzanie procedurami składowanymi przez Liquibase

Jedna zmiana na jeden ChangeSet

Konwencja nazewnicza dla ID w ChangeSet’ach

Komentarze w ChangeSet’ach

Myśl od rolback’u

http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 36/43

Page 60: Zarządzanie zmianami w schemacie relacyjnych baz danych

Dobre praktyki korzystania z Liquibase

Organizacja Changelog’ów w wiele plików (plik / release)

Zarządzanie procedurami składowanymi przez Liquibase

Jedna zmiana na jeden ChangeSet

Konwencja nazewnicza dla ID w ChangeSet’ach

Komentarze w ChangeSet’ach

Myśl od rolback’u

http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 36/43

Page 61: Zarządzanie zmianami w schemacie relacyjnych baz danych

Dobre praktyki korzystania z Liquibase

Organizacja Changelog’ów w wiele plików (plik / release)

Zarządzanie procedurami składowanymi przez Liquibase

Jedna zmiana na jeden ChangeSet

Konwencja nazewnicza dla ID w ChangeSet’ach

Komentarze w ChangeSet’ach

Myśl od rolback’u

http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 36/43

Page 62: Zarządzanie zmianami w schemacie relacyjnych baz danych

Dobre praktyki korzystania z Liquibase

Organizacja Changelog’ów w wiele plików (plik / release)

Zarządzanie procedurami składowanymi przez Liquibase

Jedna zmiana na jeden ChangeSet

Konwencja nazewnicza dla ID w ChangeSet’ach

Komentarze w ChangeSet’ach

Myśl od rolback’u

http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 36/43

Page 63: Zarządzanie zmianami w schemacie relacyjnych baz danych

Dobre praktyki korzystania z Liquibase

Organizacja Changelog’ów w wiele plików (plik / release)

Zarządzanie procedurami składowanymi przez Liquibase

Jedna zmiana na jeden ChangeSet

Konwencja nazewnicza dla ID w ChangeSet’ach

Komentarze w ChangeSet’ach

Myśl od rolback’u

http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 36/43

Page 64: Zarządzanie zmianami w schemacie relacyjnych baz danych

Wspierane bazy danych

MySQL

PostgreSQL

Oracle

Sql Server

Sybase

DB2

Derby

HSQLDB

H2

Informix

Firebird

SQLite

InterSystems Cache

SAP MaxDB

IBM DB2 for iSeries

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 37/43

Page 65: Zarządzanie zmianami w schemacie relacyjnych baz danych

Co może jeszcze Liquibase?

Generowanie ChangeLog’a na podstawie aktualnej bazydanych

Context’y, Preconditions

Parameters

Możliwość wygenerowania Rollback’ów

Porównywanie baz danych

Generowanie dokumentacji bazy w stylu JavaDoc

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 38/43

Page 66: Zarządzanie zmianami w schemacie relacyjnych baz danych

Co może jeszcze Liquibase?

Generowanie ChangeLog’a na podstawie aktualnej bazydanych

Context’y, Preconditions

Parameters

Możliwość wygenerowania Rollback’ów

Porównywanie baz danych

Generowanie dokumentacji bazy w stylu JavaDoc

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 38/43

Page 67: Zarządzanie zmianami w schemacie relacyjnych baz danych

Co może jeszcze Liquibase?

Generowanie ChangeLog’a na podstawie aktualnej bazydanych

Context’y, Preconditions

Parameters

Możliwość wygenerowania Rollback’ów

Porównywanie baz danych

Generowanie dokumentacji bazy w stylu JavaDoc

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 38/43

Page 68: Zarządzanie zmianami w schemacie relacyjnych baz danych

Co może jeszcze Liquibase?

Generowanie ChangeLog’a na podstawie aktualnej bazydanych

Context’y, Preconditions

Parameters

Możliwość wygenerowania Rollback’ów

Porównywanie baz danych

Generowanie dokumentacji bazy w stylu JavaDoc

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 38/43

Page 69: Zarządzanie zmianami w schemacie relacyjnych baz danych

Co może jeszcze Liquibase?

Generowanie ChangeLog’a na podstawie aktualnej bazydanych

Context’y, Preconditions

Parameters

Możliwość wygenerowania Rollback’ów

Porównywanie baz danych

Generowanie dokumentacji bazy w stylu JavaDoc

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 38/43

Page 70: Zarządzanie zmianami w schemacie relacyjnych baz danych

Co może jeszcze Liquibase?

Generowanie ChangeLog’a na podstawie aktualnej bazydanych

Context’y, Preconditions

Parameters

Możliwość wygenerowania Rollback’ów

Porównywanie baz danych

Generowanie dokumentacji bazy w stylu JavaDoc

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 38/43

Page 71: Zarządzanie zmianami w schemacie relacyjnych baz danych

Alternatywne rozwiązania

Flyway

c5-db-migration

dbdeploy

mybatis2

MIGRATEdb

migrate4j

dbmaintain

AutoPatch

Porównanie systemów: http://flywaydb.org/#features

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 39/43

Page 72: Zarządzanie zmianami w schemacie relacyjnych baz danych

Pytania

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 40/43

Page 73: Zarządzanie zmianami w schemacie relacyjnych baz danych

Obrazki

http://www.clker.com/clipart-business-man-2.htmlhttp://www.clker.com/clipart-image-of-person.htmlhttp://www.clker.com/clipart-blue-collar-worker.htmlhttp://www.clker.com/clipart-247488.htmlhttp://www.clker.com/clipart-1796.htmlhttp://www.clker.com/clipart-database-symbol-1.htmlhttp://www.clker.com/clipart-interrogante-1.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 41/43

Page 74: Zarządzanie zmianami w schemacie relacyjnych baz danych

More Info

Marcin Stachniuk Blog: mstachniuk.blogspot.comLiquibase: http://www.liquibase.org/Feature Comparison (Flyway): http://flywaydb.org/#featuresLiquibase best practices:http://www.liquibase.org/bestpractices.html

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 42/43

Page 75: Zarządzanie zmianami w schemacie relacyjnych baz danych

Zarządzanie zmianami w schemacie relacyjnychbaz danych

Marcin [email protected]

http://mstachniuk.blogspot.com@MarcinStachniuk

Dziękuję!24 października 2014

Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 43/43