Ich dachte, dies sei ein einfacher Anwendungsfall für das neue Konfigurationsmanagementsystem, aber ich hatte kein Glück, herauszufinden, wie dies gelöst werden kann:
Problem
Ich möchte die Konfiguration in git speichern und drush verwenden, um die Konfiguration während der Entwicklung zu exportieren und dann bei der Bereitstellung die Konfiguration zu importieren. Ähnlich wie beim Zurücksetzen von Funktionen in Drupal 7. Mein Problem ist, dass ich für verschiedene Integrationen keine Zugangscodes in git speichern möchte. Dies führt dazu, dass diese Konfigurationen am gelöscht werden
$ drush cim -y
Wo ich hingeschaut habe
Ich hatte gehofft, dass es eine einfache Liste / Konfiguration für Configs geben würde, die beim Import / Export ausgeschlossen werden sollten. Es scheint, dass es irgendwann gab, aber es muss wieder entfernt worden sein, da es derzeit in Drupal 8 verfügbar ist.
Ich habe untersucht, wie Konfigurationsänderungen vorgenommen werden, indem der aktive Speicher und der Synchronisierungsspeicher verglichen werden, um festzustellen, ob es einen Ort gibt, an dem ich Änderungen entfernen kann. Dies schien jedoch nicht der Fall zu sein. Ich habe mir angesehen, wie drush den Konfigurationsimport durchführt, da er einige eigene Konfigurationen ausschließt, aber es sah nicht so aus, als wäre dies erweiterbar. Ich habe nachgesehen ConfigEvents
, aber diese scheinen alle nach einem Import zu passieren, also sieht es nicht so aus, als ob dies verwendet werden kann.
Fehlt mir etwas oder können Configs nicht einfach vom Import / Export ausgeschlossen werden?
quelle
Sie können das Modul "Config Ignore" verwenden: https://www.drupal.org/project/config_ignore
quelle
Sie können hierfür eine Kombination aus config_ignore und config_split verwenden .
Mit Config ignore können Sie eine Teilmenge der Konfigurationsentitäten während des Imports ignorieren (verhindert auch das Löschen seit der Version 2.x). Leider verhindert dies nicht das Ausschließen von config während des Exports.
Um Konfigurationsentitäten beim Export auszuschließen, können Sie config_split verwenden, eine neue config_split-Entität erstellen und den Ordner leer lassen. Dadurch wird verhindert, dass die Konfiguration in das Dateisystem exportiert wird. Stattdessen wird es in die Datenbank exportiert.
In Drupal 8 habe ich Exclude config from configuration management zu diesem Thema geschrieben.
quelle
Zum Teilen von Konfigurationen können Sie https://www.drupal.org/project/config_split verwenden .
Sie können Exporte in verschiedene Verzeichnisse aufteilen, die Sie dann ignorieren können.
Die Verantwortlichen der CMI-Initiative haben auf der drupal con dublin 2016 einen sehr schönen Vortrag gehalten, den Sie unbedingt überprüfen sollten.
quelle
Ich habe gerade @berdir in # 1 Antwort getestet und es läuft perfekt. Nur ich füge eine kleine Anmerkung hinzu: Sie müssen die gesamte Konfiguration in diese Variable einfügen, vollständig. Ohne es läuft $ config var nicht richtig.
Etwas wie das:
Dokumentation: https://www.drupal.org/node/1928898
Hinweis aus der obigen Dokumentation: "Beachten Sie, dass über $ config in settings.php überschriebene Werte in der Drupal-Administrationsoberfläche nicht angezeigt werden können."
quelle
$config['module.settings']['some']['value'] = 'foo';
Ich frage mich, warum bis jetzt noch niemand Drush CMI-Tools erwähnt hat . Die Zauberwörter sind
drush cexy
undconfig-ignore.yml
. Sie haben eine Liste, die Sie anpassen können. Wir brauchten es einmal, um Blockinstanzen auszuschließen, während gleichzeitig die Blockbasen verarbeitet wurden.Quelle: https://www.previousnext.com.au/blog/introducing-drush-cmi-tools
Quelle: https://github.com/previousnext/drush_cmi_tools
quelle
Verwendung von Config Split (empfohlen)
Das Konfigurations-Split-Modul wurde speziell für diesen Bedarf entwickelt.
Konfigurationssplit ist in drush integriert.
Nur mit Drush
Drush soll das auch mit der
--skip-modules
Flagge können.Sie können die folgenden Zeilen in einer Drupal / Drushrc.php in der Webroot Ihres Projekts hinzufügen, um dies automatisch zu tun.
Siehe http://www.drush.org/de/master/config-exporting/#ignoring-development-modules
Leider gibt es einen Fehler mit dieser Funktionalität: https://github.com/drush-ops/drush/issues/1820 . Im Moment müssen Sie diese Konfigurationsdateien auch zu Ihrem .gitignore hinzufügen, damit exportierte Konfigurationsdateien nicht festgeschrieben werden. Es besteht die Gefahr, diese (fehlerhafte) Funktionalität von drush zugunsten der Konfigurationsaufteilung aufzugeben.
quelle