Na Drupal 8.1 ciągle wyświetlam tego rodzaju komunikaty, gdy próbuję aktywować niestandardowy moduł lub niestandardową funkcję, która wprowadza pewne modyfikacje do strony podstawowej. (dodaj pola).
To naprawdę denerwujące ...
Kroki:
- Wyczyść bazę danych całkowicie
- przejdź do /install.php i wybierz Profil standardowy
- Teraz, gdy witryna jest uruchomiona, przejdź do rozszerzenia
- Wybierz opcję - strona podstawowa
Wynik:
Unable to install Feature - Basic Page, core.base_field_override.node.page.promote, core.entity_form_display.node.page.default, core.entity_view_display.node.page.default, core.entity_view_display.node.page.teaser, field.field.node.page.body, node.type.page already exist in active configuration.
No tak ... właśnie to chcę zrobić: zmień te ustawienia domyślne!
Expexted:
Będę mógł zainstalować moją funkcję, która wprowadza pewne modyfikacje strony podstawowej.
Moja funkcja
Oto moja funkcja Utwórz za pomocą modułu Funkcje
Zasadniczo dodaje dwa pola, banner_image i background_image do strony podstawowej
Akta:
config
install
core.base_field_override.node.page.changed.yml
core.base_field_override.node.page.created.yml
core.base_field_override.node.page.promote.yml
core.base_field_override.node.page.status.yml
core.base_field_override.node.page.sticky.yml
core.base_field_override.node.page.title.yml
core.base_field_override.node.page.uid.yml
core.entity_form_display.node.page.default.yml
core.entity_view_display.node.page.default.yml
core.entity_view_display.node.page.teaser.yml
field.field.node.page.body.yml
field.field.node.page.field_banner_image.yml
field.field.node.page.field_image.yml
field.storage.node.field_banner_image.yml
language.content_settings.node.page.yml
node.type.page.yml
feature_basic_page.features.yml
feature_basic_page.info.yml
Dlaczego ta prosta rzecz nie jest obsługiwana? Czy to błąd? Co powinienem zrobić, aby móc korzystać z mojej funkcji?
Odpowiedzi:
Z drush możesz prawdopodobnie zrobić
aby usunąć konfiguracje, które narzekają
źródło
optional/
folderu, aby je zamknąć. Ale nie jestem pewien wszystkich konsekwencji ...Warning: in_array() expects parameter 2 to be array, null given in lightning_layout_block_alter() (line 91 of modules/contrib/lightning_layout/lightning_layout.module).
po skonfigurowaniu źródła kodu git strony i bazy danych na innym komputerze .drush pm-uninstall lightning_layout
działało, ale potem, gdy próbowałem go ponownie zainstalować,drush en lightning_layout
otrzymałem ten błąd wiersza polecenia „W PreExistingConfigException.php wiersz 65: Obiekty konfiguracji (field.storage.node.panelizer) dostarczone przez lightning_layout już istnieją w aktywnej konfiguracji” Więc użyłem twojego rozwiązanie w ten sposób:drush config-delete field.storage.node.panelizer
a następnie był w stanie ponownie włączyć moduł:drush en lightning_layout
Ta funkcja nie jest obsługiwana, ponieważ moduł nie może zastąpić jednostki konfiguracji, która już istnieje, instalacją config.
Aby dodać konfigurację trybu formularza i trybu widoku dla już istniejącego typu węzła, musisz zaimplementować to w kodzie w hook_install ().
Lub musisz najpierw usunąć typ węzła na swojej stronie, ale potem musisz również usunąć zawartość.
I nie, to nie jest błąd, tak to zdefiniowano, aby zapobiec utracie konfiguracji.
źródło
Znaleziono moduł, użyj modułu Łatwa instalacja , aby wyczyścić aktywną konfigurację bez użycia rozwijania lub drush . Działa, nawet jeśli przegapiłeś opcjonalny folder i wymuszoną opcję w plikach konfiguracyjnych modułu ( yml )
źródło
Mam ten sam problem z witryną panteonu. Podjąłem polecenie drush
to dla mnie praca.
źródło
Dzięki
drush en
temu działa!EDYCJA: istnieje teraz lepsze rozwiązanie, patrz: Jak usunąć obiekt konfiguracji z aktywnej konfiguracji?
źródło
Jeśli chcesz dodać konfiguracje do niestandardowego modułu, ale już istnieją one w aktywnej konfiguracji i z jakiegoś powodu nie możesz użyć drush do usunięcia tych konfiguracji (w moim przypadku, ponieważ jest to część profilu instalacyjnego), i jesteś pewien nie będzie problemu z nadpisaniem konfiguracji, oto podejście do zastąpienia tych konfiguracji.
Dodaj nowy folder do niestandardowego modułu, / config / hook_install i dodaj pliki config .yml w tym folderze, a następnie w module hook_install modułu.
źródło