Unter Drupal 8.1 werden solche Nachrichten weiterhin angezeigt, wenn ich versuche, ein benutzerdefiniertes Modul oder eine benutzerdefinierte Funktion zu aktivieren, die Änderungen an der Basisseite vornimmt. (Felder hinzufügen).
Es ist wirklich nervig ...
Schritte:
- Datenbank vollständig löschen
- Gehe zu /install.php und wähle Standardprofil
- Nachdem die Site ausgeführt wird, wechseln Sie zu Erweitern
- Wählen Sie Feature - Basisseite
Ergebnis:
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.
Nun ja ... das ist, was ich tun möchte: Ändern Sie diese Standardeinstellungen!
Expexted:
Sie können meine Funktion installieren, die einige Änderungen an der Basisseite vornimmt.
Meine Funktion
Hier ist mein Feature erstellen mit dem Features Modul
Grundsätzlich werden der Basisseite die beiden Felder banner_image und background_image hinzugefügt
Dateien:
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
Warum wird diese einfache Sache nicht unterstützt? Ist es ein Bug? Was soll ich tun, um meine Funktion nutzen zu können?
Antworten:
Mit Drush kannst du das wahrscheinlich machen
um die Konfigurationen zu löschen, die sich beschweren
quelle
optional/
Ordner verschieben können, um ihn zum Schweigen zu bringen. Aber ich bin mir nicht sicher, was das alles zu bedeuten hat ...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).
nachdem ich meine Site-Code-Git-Quelle und -Datenbank auf einem anderen Computer eingerichtet hatte .drush pm-uninstall lightning_layout
funktionierte aber dann, als ich versuchte, es erneut zu installieren,drush en lightning_layout
bekam ich diesen Befehlszeilenfehler "In PreExistingConfigException.php, Zeile 65: Konfigurationsobjekte (field.storage.node.panelizer), die von lightning_layout bereitgestellt wurden, sind bereits in der aktiven Konfiguration vorhanden." Lösung also:drush config-delete field.storage.node.panelizer
und war dann in der Lage, das Modul wieder zu aktivieren:drush en lightning_layout
Diese Funktion wird nicht unterstützt, da ein Modul möglicherweise keine Konfigurationsentität ersetzt, die bereits mit install config vorhanden ist.
Um Formular- und Ansichtsmoduskonfigurationen für einen bereits vorhandenen Knotentyp hinzuzufügen, müssen Sie dies in Code in hook_install () implementieren.
Oder Sie müssen zuerst den Knotentyp auf Ihrer Site löschen, dann aber auch den Inhalt.
Und nein, dies ist kein Fehler. Dies ist die Definition, um Konfigurationsverluste zu vermeiden.
quelle
Gefundenes Modul, verwenden Sie das Easy Install- Modul, um die aktive Konfiguration ohne Verwendung von Devel oder Drush zu löschen . Es funktioniert auch, wenn Sie den optionalen Ordner und die erzwungene Option in den Konfigurationsdateien Ihres Moduls ( yml ) verpasst haben.
quelle
Ich habe das gleiche Problem für die Pantheon-Site. Ich habe den Drush-Befehl eingegeben
Es ist Arbeit für mich.
quelle
Damit
drush en
funktioniert es!BEARBEITEN: Es gibt jetzt eine bessere Lösung, siehe: Wie entferne ich ein Konfigurationsobjekt aus der aktiven Konfiguration?
quelle
Wenn Sie Ihrem benutzerdefinierten Modul Konfigurationen hinzufügen möchten, diese aber bereits in der aktiven Konfiguration vorhanden sind, und aus irgendeinem Grund diese Konfigurationen nicht mit drush gelöscht werden können (in meinem Fall, weil sie Teil eines Installationsprofils sind), sind Sie sich sicher Es wird kein Problem geben, wenn Sie die Konfiguration überschreiben. Hier ist ein Ansatz zum Ersetzen dieser Konfigurationen.
Fügen Sie einen neuen Ordner in Ihrem benutzerdefinierten Modul / config / hook_install hinzu, und fügen Sie Ihre config.yml-Dateien in diesem Ordner und anschließend in der hook_install Ihres Moduls hinzu.
quelle