it-swarm.com.de

Das XYZ-Modul kann nicht installiert werden, da das A-Modul erforderlich ist

Beim Ausführen (direkt nach der Site-Installation) wird drush cim -y Befehl erscheint der folgende Fehler:

Drupal\Core\Config\ConfigImporterException: There were errors validating the config synchronization. in Drupal\Core\Config\ConfigImporter->validate() (line 728 of /var/www/ifc_test/web/core/lib/Drupal/Core/Config/ConfigImporter.php).
The import failed due for the following reasons:                                                                           
Unable to install the <em class="placeholder">XYZ</em> module since it requires the <em class="placeholder">YAML
Editor</em> module.
Configuration <em class="placeholder">XYZ.conf</em> depends on the <em
class="placeholder">YAML Editor</em> module that will not be installed after import.
Configuration <em class="placeholder">yaml_editor.config</em> depends on the <em class="placeholder">YAML Editor</em> module that will
not be installed after import.

(XYZ ist der Name des benutzerdefinierten Moduls)

  1. Ich habe yaml_editor Modul physisch unter Module beitragen.
  2. In den obigen Konfigurationsdateien ist eine Abhängigkeit deklariert.
  3. Ich habe auch "yaml_editor" zu core.extension.yml hinzugefügt, um sicherzustellen, dass es installiert werden sollte.

Warum aktiviert der Konfigurationsimporter den "yaml_editor" nicht? Ich meine, dafür ist die Abhängigkeitserklärung gedacht. Außerdem habe ich einige andere Module, die nach der Site-Installation nicht aktiviert werden. Sie werden jedoch während der drush cim Prozess.

Natürlich drush en yaml_editor -y löst das Problem, ist jedoch Teil eines Erstellungsprozesses, und ich möchte nicht einfach eine zusätzliche Zeile in das Bereitstellungsskript einfügen, nur weil dieses seltsame Ereignis auftritt.

Irgendwelche Ideen, warum das Konfigurationsmanagement diese Abhängigkeit nicht aktiviert (installiert) und warum es heißt: "Das wird nach dem Import nicht installiert"?

7
ssibal

Durch Hinzufügen von yaml_editor Zu core.extension.yml Wurde das Problem behoben. Es wurde möglicherweise aufgrund eines komplexen git merge Entfernt, und deshalb schlug mein Installationsprozess plötzlich fehl.

10
ssibal

Ich hatte das gleiche Problem. Meine Situation wie folgt

Benutzerdefiniertes Modul mit Konfiguration. Beim Export stimmen die mit name exportierten Konfigurationsdaten des Moduls mit dem Konfigurationsnamen des Codes (php) als (xxx.settings.yml) überein. Wenn "xxx" nicht mit dem Modulnamen übereinstimmt, tritt der Fehler auf.

Ich habe den Konfigurationsnamen im Quellcode geändert und es funktioniert einwandfrei.

4
Ali

Vorschläge:

  • Versuchen Sie einen Teilimport mit: drush config-import --partial.
  • Stellen Sie sicher, dass das erforderliche/fehlende Modul in core.extension.yml Vorhanden ist, z.

    module:
      missing_module: 0
    

    Hinweis: Wenn Sie das Modul Configuration Split verwenden, müssen Sie das Modul mit allen Dateien füllen.

  • Stellen Sie sicher, dass Sie drush updb Ausgeführt und den Cache geleert haben (drush cr).

  • Versuchen Sie zuerst zu exportieren (insbesondere core.extension.yml) Und dann erneut zu importieren.
  • Versuchen Sie, über die Benutzeroberfläche zu synchronisieren (bei /admin/config/development/configuration).

Drupal-Konsole

Versuchen Sie für den alternativen Ansatz, Konfigurationsimport mit Drupal-Konsole auszuführen. Manchmal können Sie mehr Hinweise darauf erhalten, was falsch ist. Z.B.

drupal config:import

Oder versuchen Sie für ein einzelnes Element oder eine Datei (--file):

drupal config:import:single
1
kenorb

Die wahre Ursache:

Das Yaml-Editor-Modul wurde wie folgt zu drushcr.php Unter web/sites/default Hinzugefügt:

$command_specific['config-export']['skip-modules'] = ['yaml_editor'];
$command_specific['config-import']['skip-modules'] = ['yaml_editor'];

Auf diese Weise können Sie Module aus drush cim und/oder cex ignorieren, um Module zu aktivieren/deaktivieren. Dies ist sehr nützlich bei der Entwicklung, da Module wie Devel, Kint usw. auf Ihrem lokalen Host aktiviert sind. Wenn Sie jedoch Änderungen an der Konfiguration vornehmen und einen Cex erstellen, werden diese Entwicklungsmodule auf der Produktionssite nicht aktiviert.

0
ssibal

Überprüfen Sie Ihre Konfiguration mit dem neuesten Code und führen Sie drush cr.

Importieren Sie anschließend Ihre Konfiguration in local.

drush cim -y
0
Vishal Nigam