Wdrożenia bez niedostępności

Problem: migracja pola date do datetime, bez zaprzestania działania.

  1. dodajemy kolumnę datetime

  2. wdrażamy wersję 2.0

    1. odczyt z date

    2. zapis do date+datetime

  3. migrujemy dane date => datetime

  4. wdrażamy wersję 3.0

    1. odczyt z datetime

    2. zapis do date+datetime - w momencie wdrożenia cały czas działa wersja 2.0 (która czyta z kolumny date)

  5. wdrażamy wersję 4.0

    1. odczyt z datetime

    2. zapis do datetime

  6. usuwamy kolumnę date

    1. concurrentt ddl

    2. lockmount

    3. nie pozwala na powrót do aplikacji w wersji 3.0

  • omawiana zmiana nie jest trudna

  • złożone zmiany typu denormalizacja modelu są praktycznie nierealne do wykonania

  • w tym modelu mechanizm jest uniwersalny

Last updated