Buduję niestandardowy moduł w Drupal 8. Zawiera on kilka plików konfiguracyjnych YAML.
W miarę rozwoju muszę zmienić i dodać do konfiguracji, np. Aby dodać kolejne pole do mojej niestandardowej encji.
Obecnie jedynym sposobem, w jaki udało mi się przekonać Drupala do zauważenia zmian, jest odinstalowanie modułu i jego ponowna instalacja.
Czy istnieje sposób, aby Drupal sprawdził, czy pliki konfiguracyjne dostarczone przez moduły są takie same jak aktywna konfiguracja, a jeśli nie, zaktualizował aktywną konfigurację? Jak obsługiwane są aktualizacje modułów? W D7 hook_update_N
można by dodawać pola za pomocą PHP, ale wygląda na to, że CM powinien to obsłużyć w D8?
Rzeczy, które próbowałem po aktualizacji plików yml w module:
drush cr
, config sync.ręczne kopiowanie wszystkich zaktualizowanych plików konfiguracyjnych do
sites/default/files/config_XXX/staging/
- ale to powoduje błąd: „Nie można zaimportować konfiguracji etapowej, ponieważ pochodzi ona z innej witryny niż ta witryna. Możesz synchronizować konfigurację tylko między klonowanymi instancjami tej witryny”. .ręczne importowanie plików jeden po drugim za pomocą menedżera konfiguracji. To działa, ale oczywiście musi istnieć bardziej automatyczny sposób.
[EDYCJA] ręcznie użyj modułu config_update , aby sprawdzić zmiany i „przywrócić” do konfiguracji modułu. Znowu jest to instrukcja.
EDYCJA: Z Zarządzania konfiguracją - zrób i nie
NIE DOTYCZY
Spróbuj zmienić aktywną konfigurację w swojej witrynie, zmieniając pliki w katalogu config / install modułu. To NIE zadziała, ponieważ Drupal będzie czytał z tego katalogu tylko po zainstalowaniu modułu.
... ale nie zmienia się dzieje się zdarzyć, chyba że moduły są zobowiązane do tego, co config one potrzebne w ich pierwszym w historii zwolnić, a może nigdy nie zaktualizować lub dodać config.
Z góry dziękuję.
hook_update_N
wezmę, ale nie jestem pewien, co
hook_update_N
. Doskonały artykuł o Drupal 8 dla małych witryn (i część 2 ). W D8 „strony mają swoją konfigurację, a nie moduły” .