W jakiej kolejności należy importować konfigurację i aktualizować moduły?

10

Ponieważ wersja modułów w schemacie jest przechowywana w magazynie klucz-wartość, jest ona unikalna dla każdej witryny i nie jest synchronizowana przez zarządzanie konfiguracją. Ma to sens, ponieważ aktualizacje mogą wymagać wprowadzenia korekt, które nie są zawarte w konfiguracji (np. Aktualizacje bazy danych), ale istnieją inne zmiany, które mogą zostać uwzględnione w konfiguracji (np. Dodanie nowej wartości konfiguracji).

  • Czy istnieje ryzyko związane z uruchomieniem importu konfiguracji i aktualizacji bazy danych w dowolnej kolejności?
  • Jaka jest preferowana kolejność uruchamiania tych operacji?
  • Czy haki aktualizacji wymagają wprowadzenia specjalnych dostosowań dla elementów konfiguracji, które mogły już zostać zaimportowane?
  • Czy są jakieś inne operacje, które mogą być wymagane do pełnej aktualizacji środowiska produkcyjnego?
luka
źródło
Powiązany numer: drupal.org/node/2901418 :
milkovsky

Odpowiedzi:

12

Aktualizacje należy uruchomić przed zaimportowaniem konfiguracji

Oczekujący problem dotyczący rdzenia zapewni dopasowanie wersji kodu i schematu przed zezwoleniem na import konfiguracji .


Problemy z importowaniem konfiguracji przed aktualizacjami

  • Hak aktualizacji polegający na wartości konfiguracji może zakończyć się innym rezultatem niż gdyby został uruchomiony na wartości sprzed importu.

  • Aktualizacja może potencjalnie zakończyć się niepowodzeniem, jeśli spróbuje utworzyć jednostki konfiguracji, które już istnieją.

Obawy dotyczące importu konfiguracji po aktualizacjach

  • Jeśli aktualizacja, która wprowadza nową jednostkę konfiguracji, zostanie uruchomiona jako pierwsza, utworzy nowy element konfiguracji, który będzie miał inny UUID niż ten, który jest w konfiguracji. Jednak po zaimportowaniu konfiguracji encja powinna zostać zastąpiona wersją konfiguracji.

    Może wystąpić tutaj potencjalny problem, jeśli zastąpienie jednostki wpłynie na powiązaną treść. Na przykład, jeśli aktualizacja migruje zawartość z jednego pola do drugiego, podczas importu konfiguracji pole zostanie całkowicie zastąpione, a zawartość potencjalnie utracona. W takim przypadku może być konieczne dostosowanie procesu wdrażania, aby uruchomić aktualizacje w środowisku docelowym i wyeksportować wynikową konfigurację.

luka
źródło
Poprzednio zostawiłem odpowiedź, że kolejność nie ma znaczenia (tylko, że kolejność aktualizacji i konfiguracji powinna być taka sama, jak została zaimplementowana). Myślę, że się myliłem, ponieważ zawsze powinieneś eksportować konfigurację po aktualizacji. Tak więc na poziomie lokalnym aktualizuj, a następnie eksportuj, podczas wdrażania, aktualizuj, a następnie importuj.
ognockocaten
Jak omawiany jest problem związany z połączeniem, zdarza się, że aktualizacje naszej encji wymagają zaimportowania nowego pola, w przeciwnym razie hak po aktualizacji zakończy się niepowodzeniem. W takim przypadku potrzebujemy importu konfiguracji wykonanego przed aktualizacją bazy danych. Najświeższe informacje
atwixtor