Liquibase - Zarządzanie zmianami w relacyjnych bazach danychMarcinStachniuk
Prezentacja wygłoszona na Wrocławskim JUGu 30 września 2015. Prezentacja opisuje w jaki sposób można zarządzać zmianami w relacyjnych bazach danych i jak ten problem rozwiązuje Liquibase.
Core Web Vitals to metryki przygotowane przez Google w celu pomiaru wydajności aplikacji oraz User Experience. Są one składowymi wyniku “Performance” obliczanego przez narzędzie Lighthouse. W swojej prezentacji Marcin przybliży temat poszczególnych metryk, a następnie na kilku przykładach postaram się zaprezentować problemy wpływające na niższy wynik oraz jak sobie z nimi poradzić. Całość prezentacji opierać się będzie na prostej aplikacji Next.js, której wynik będziemy starać się poprawić, korzystając z kilku ciekawych narzędzi.
Prezentacja powstała na potrzeby prezentacji JUG Bielsko-Biała.
Na początku zaczynamy od postawienia sobie pytania dlaczego liquibase jest nam potrzebny i z jakimi problemami spotykamy się na co dzień podczas zarządzania schematem relacyjnej bazy danych.
W kolejnej części prezentacji odpowiadamy sobie na zadane pytania zgłębiając wiedzę o liquibase
Do prezentacji dołączony jest demo: https://github.com/mlubanski/questionnarie-server
Liquibase - Zarządzanie zmianami w relacyjnych bazach danychMarcinStachniuk
Prezentacja wygłoszona na Wrocławskim JUGu 30 września 2015. Prezentacja opisuje w jaki sposób można zarządzać zmianami w relacyjnych bazach danych i jak ten problem rozwiązuje Liquibase.
Core Web Vitals to metryki przygotowane przez Google w celu pomiaru wydajności aplikacji oraz User Experience. Są one składowymi wyniku “Performance” obliczanego przez narzędzie Lighthouse. W swojej prezentacji Marcin przybliży temat poszczególnych metryk, a następnie na kilku przykładach postaram się zaprezentować problemy wpływające na niższy wynik oraz jak sobie z nimi poradzić. Całość prezentacji opierać się będzie na prostej aplikacji Next.js, której wynik będziemy starać się poprawić, korzystając z kilku ciekawych narzędzi.
Prezentacja powstała na potrzeby prezentacji JUG Bielsko-Biała.
Na początku zaczynamy od postawienia sobie pytania dlaczego liquibase jest nam potrzebny i z jakimi problemami spotykamy się na co dzień podczas zarządzania schematem relacyjnej bazy danych.
W kolejnej części prezentacji odpowiadamy sobie na zadane pytania zgłębiając wiedzę o liquibase
Do prezentacji dołączony jest demo: https://github.com/mlubanski/questionnarie-server
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademyMarcinStachniuk
Wszyscy znamy i tworzymy API RESTowe. Jednak to podejście ma swoje wady i ograniczenia. Dlatego Facebook stworzył GraphQL jako alternatywę. W mojej prezentacji przedstawię problemy RESTa oraz jak je rozwiązuje GraphQL. Pokażę składnię, jak projektować takie API oraz zalety i wady.
Moje slajdy z prezentacji na GraphQL Wroclaw #3 https://www.meetup.com/GraphQL-Wroclaw/events/261828347/
Większość prezentacji dotyczących GraphQL opowiada o JavaSkryptowych narzędziach, natomiast mało kto mówi o tym jak korzystać z GraphQL w Javie. Prezentacja będzie o tym, jak sprawić aby nasz backendowy, Javowy serwer korzystał z GraphQL. Będzie o możliwych podejściach w implementacji, dobrych praktykach i 4-letnim doświadczeniu z GraphQL na produkcji.
[DevCrowd] GraphQL - gdy API RESTowe to za małoMarcinStachniuk
Slajdy z konferencji DevCrowd
Wszyscy znamy architekturę REST do definiowania API naszych aplikacji. Jednak REST ma swoje wady i ograniczenia. To dlatego Facebook stworzył GraphQL jako alternatywę. W mojej prezentacji przedstawię ograniczenia RESTa i jak je rozwiązuje GraphQL. Pokażę składnię, zalety jak i wady. Będzie też o tym jak zaimplementować GraphQL w Javie oraz co jeszcze warto o nim wiedzieć.
Slajdy z konferencji Confitura 2019.
Wszyscy znamy podejście REST do definiowania API naszych aplikacji. Jednak REST ma swoje wady i ograniczenia. To dla tego Facebook stworzył GraphQL jako alternatywę. W mojej prezentacji przedstawię ograniczenia RESTa i jak je rozwiązuje GraphQL. Pokażę składnię, zalety jak i wady. Będzie też jak zaimplementować GraphQL w Javie oraz co jeszcze warto o nim wiedzieć.
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Do you know how Continuous Delivery of Java Open Source libraries looks? How big is your release overhead? Do you update release notes and include contributors manually? How do you handle versioning? Do you use semantic versioning?
During this workshop, you will learn how to set up Continuous Delivery for your library. You’ll never have to manually release new versions again. We will use the following tools: GitHub, TravisCI, Bintray, Maven Central. We will glue everything using Shipkit.org - a project born from Mockito (and still used there). You’ll additionally learn SerVer.
This workshop is mostly for Java open source and Gradle plugins developers. We will use a library prepared especially for this training, so no worries if you don’t have your own open source project (yet).
Prerequisites: GitHub account, Java & Gradle basics.
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
More Related Content
Similar to Zarządzanie zmianami w schemacie relacyjnych baz danych
Spróbujemy odpowiedzieć na pytanie: Jaki framework będzie dla nas najlepszy? Opowiem dlaczego to pytanie jest takie ważne oraz o tym czego potrzebujemy by znaleźć na nie odpowiedz, która wcale nie jest taka trywialna.
O zagadnieniu:
Czy następuje taki moment w życiu programisty, kiedy może on stwierdzić, że jego warsztat jest już doskonały? Nie, jeżeli pracuje w technologiach internetowych. Ta dziedzina informatyki rozwija się w niesamowicie szybkim tempie, a stworzone wczoraj rozwiązania warto stosować już dziś!
Cel i korzyści spotkania:
Podczas spotkania słuchacze poznają aktualnie wykorzystywane technologie oraz kluczowe umiejętności w produkcji aplikacji internetowych, jak również metody programowania ekstremalnego i techniki zwinnego wytwarzania oprogramowania. Osobom, które dopiero zaczynają swoją przygodę z web development, zostanie przedstawiona propozycja działań, których sumienne podjęcie się gwarantuje odniesienie sukcesu zawodowego.
GraphQL - Piękne API w Twojej Aplikacji - KrakowGraphAcademyMarcinStachniuk
Wszyscy znamy i tworzymy API RESTowe. Jednak to podejście ma swoje wady i ograniczenia. Dlatego Facebook stworzył GraphQL jako alternatywę. W mojej prezentacji przedstawię problemy RESTa oraz jak je rozwiązuje GraphQL. Pokażę składnię, jak projektować takie API oraz zalety i wady.
Moje slajdy z prezentacji na GraphQL Wroclaw #3 https://www.meetup.com/GraphQL-Wroclaw/events/261828347/
Większość prezentacji dotyczących GraphQL opowiada o JavaSkryptowych narzędziach, natomiast mało kto mówi o tym jak korzystać z GraphQL w Javie. Prezentacja będzie o tym, jak sprawić aby nasz backendowy, Javowy serwer korzystał z GraphQL. Będzie o możliwych podejściach w implementacji, dobrych praktykach i 4-letnim doświadczeniu z GraphQL na produkcji.
[DevCrowd] GraphQL - gdy API RESTowe to za małoMarcinStachniuk
Slajdy z konferencji DevCrowd
Wszyscy znamy architekturę REST do definiowania API naszych aplikacji. Jednak REST ma swoje wady i ograniczenia. To dlatego Facebook stworzył GraphQL jako alternatywę. W mojej prezentacji przedstawię ograniczenia RESTa i jak je rozwiązuje GraphQL. Pokażę składnię, zalety jak i wady. Będzie też o tym jak zaimplementować GraphQL w Javie oraz co jeszcze warto o nim wiedzieć.
Slajdy z konferencji Confitura 2019.
Wszyscy znamy podejście REST do definiowania API naszych aplikacji. Jednak REST ma swoje wady i ograniczenia. To dla tego Facebook stworzył GraphQL jako alternatywę. W mojej prezentacji przedstawię ograniczenia RESTa i jak je rozwiązuje GraphQL. Pokażę składnię, zalety jak i wady. Będzie też jak zaimplementować GraphQL w Javie oraz co jeszcze warto o nim wiedzieć.
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Do you know how Continuous Delivery of Java Open Source libraries looks? How big is your release overhead? Do you update release notes and include contributors manually? How do you handle versioning? Do you use semantic versioning?
During this workshop, you will learn how to set up Continuous Delivery for your library. You’ll never have to manually release new versions again. We will use the following tools: GitHub, TravisCI, Bintray, Maven Central. We will glue everything using Shipkit.org - a project born from Mockito (and still used there). You’ll additionally learn SerVer.
This workshop is mostly for Java open source and Gradle plugins developers. We will use a library prepared especially for this training, so no worries if you don’t have your own open source project (yet).
Prerequisites: GitHub account, Java & Gradle basics.
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
Zarządzanie zmianami w schemacie relacyjnych baz danych
1. Zarządzanie zmianami w schemacie relacyjnych
baz danych
Marcin Stachniuk
mstachniuk@gmail.com
http://mstachniuk.blogspot.com
@MarcinStachniuk
24 października 2014
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 1/43
4. Jak działa projekt w korporacji?
Jak zarządzane są zmiany w
bazie danych?
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 4/43
5. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 5/43
6. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 6/43
7. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 7/43
8. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 8/43
9. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 9/43
10. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 10/43
11. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 11/43
12. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 12/43
13. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 13/43
14. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 14/43
15. Zespół programistów i bazodanowców działa osobno
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 15/43
16. 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 co
zrobił bazodanowiec
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43
17. 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 co
zrobił bazodanowiec
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43
18. 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 co
zrobił bazodanowiec
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43
19. 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 co
zrobił bazodanowiec
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43
20. 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 co
zrobił bazodanowiec
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43
21. 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 co
zrobił bazodanowiec
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 16/43
22. 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
23. 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
24. 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
25. Jak to zmienić?
A czy można jakoś inaczej?
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 18/43
27. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
28. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
29. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
30. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
31. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
32. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
33. 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ę baza
danych
Współpracuje z: Ant, Maven, Spring, Command Line, Servlet,
JEE CDI
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 20/43
34. Jak działa Liquibase? liquibase:update
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 21/43
35. Jak działa Liquibase? liquibase:updateSQL
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 22/43
36. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 23/43
37. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 24/43
38. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 25/43
39. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 26/43
40. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 27/43
41. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 28/43
42. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 29/43
43. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 30/43
44. Przykładowy workflow z Liquibase
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 31/43
45. 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
46. 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
47. 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
48. 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
49. 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
50. 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
51. 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
52. Wariant pośredni
Jak sobie radzić, gdy nie do końca można zautomatyzować proces
wprowadzania zmian w bazie danych?
Zautomatyzować tyle ile sie da
Progamiści powinni mieć swoje instancje bazy
Programiści muszą mieć możliwość tworzenia i uruchamiania
powtarzalnych 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
53. Wariant pośredni
Jak sobie radzić, gdy nie do końca można zautomatyzować proces
wprowadzania zmian w bazie danych?
Zautomatyzować tyle ile sie da
Progamiści powinni mieć swoje instancje bazy
Programiści muszą mieć możliwość tworzenia i uruchamiania
powtarzalnych 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
54. Wariant pośredni
Jak sobie radzić, gdy nie do końca można zautomatyzować proces
wprowadzania zmian w bazie danych?
Zautomatyzować tyle ile sie da
Progamiści powinni mieć swoje instancje bazy
Programiści muszą mieć możliwość tworzenia i uruchamiania
powtarzalnych 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
55. Wariant pośredni
Jak sobie radzić, gdy nie do końca można zautomatyzować proces
wprowadzania zmian w bazie danych?
Zautomatyzować tyle ile sie da
Progamiści powinni mieć swoje instancje bazy
Programiści muszą mieć możliwość tworzenia i uruchamiania
powtarzalnych 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
56. Wariant pośredni
Jak sobie radzić, gdy nie do końca można zautomatyzować proces
wprowadzania zmian w bazie danych?
Zautomatyzować tyle ile sie da
Progamiści powinni mieć swoje instancje bazy
Programiści muszą mieć możliwość tworzenia i uruchamiania
powtarzalnych 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
58. 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
59. 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
60. 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
61. 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
62. 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
63. 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
64. 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
65. Co może jeszcze Liquibase?
Generowanie ChangeLog’a na podstawie aktualnej bazy
danych
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
66. Co może jeszcze Liquibase?
Generowanie ChangeLog’a na podstawie aktualnej bazy
danych
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
67. Co może jeszcze Liquibase?
Generowanie ChangeLog’a na podstawie aktualnej bazy
danych
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
68. Co może jeszcze Liquibase?
Generowanie ChangeLog’a na podstawie aktualnej bazy
danych
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
69. Co może jeszcze Liquibase?
Generowanie ChangeLog’a na podstawie aktualnej bazy
danych
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
70. Co może jeszcze Liquibase?
Generowanie ChangeLog’a na podstawie aktualnej bazy
danych
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
74. More Info
Marcin Stachniuk Blog: mstachniuk.blogspot.com
Liquibase: http://www.liquibase.org/
Feature Comparison (Flyway): http://flywaydb.org/#features
Liquibase best practices:
http://www.liquibase.org/bestpractices.html
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 42/43
75. Zarządzanie zmianami w schemacie relacyjnych
baz danych
Marcin Stachniuk
mstachniuk@gmail.com
http://mstachniuk.blogspot.com
@MarcinStachniuk
Dziękuję!
24 października 2014
Marcin Stachniuk Zarządzanie zmianami w schemacie relacyjnych baz danych 43/43