![Page 1: Zarządzanie zmianami w schemacie relacyjnych baz danych](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/8.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/12.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/15.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/16.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/21.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/22.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/23.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/25.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/26.jpg)
Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 19/43
![Page 27: Zarządzanie zmianami w schemacie relacyjnych baz danych](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/27.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/30.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/33.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/34.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/35.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/37.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/44.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/45.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/46.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/47.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/48.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/49.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/50.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/51.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/52.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/53.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/54.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/55.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/56.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/57.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/58.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/59.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/60.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/61.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/62.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/63.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/64.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/65.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/66.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/67.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/68.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/69.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/70.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/71.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/72.jpg)
Pytania
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 40/43
![Page 73: Zarządzanie zmianami w schemacie relacyjnych baz danych](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/73.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/74.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022020314/5a649c887f8b9a57568b4d8f/html5/thumbnails/75.jpg)
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