Wie kann ich mit dem neuen Drupal 8-Konfigurationsmanager verhindern, dass das Devel-Modul in bestimmten Umgebungen installiert wird? Soweit ich weiß, wird die Installation auf meinem lokalen Computer automatisch aktiviert, wenn ich die Konfiguration das nächste Mal exportiere und in meine anderen Umgebungen (dev, test, prod) verschiebe.
8
configuration-management
cambraca
quelle
quelle
drush
akzeptabel? Ich habe neulich davon erfahrendrush config-export --skip-modules=devel
. Es könnte etwas Ähnliches ohne Drush geben, aber ich weiß es nicht.Antworten:
Methode: Drush
Drush kann die aktivierten Zustände von Erweiterungen beim Synchronisieren der Konfiguration ignorieren.
drush cex --skip-modules=devel
drush cim --skip-modules=devel
Mit Drush CMI-Tools können Sie mit einer Liste zu ignorierender Konfigurationen arbeiten.
drush cexy --ignore-list=/path/to/config-ignore.yml
drush cimy --delete-list=/path/to/config-ignore.yml
Methode: Module
Sie können das Configuration Split- Modul verwenden, mit dem Sie:
Konfiguration Nur-Lese-Modus- Modul
$settings['config_readonly'] = TRUE;
Ein weiteres Modul ist die Umgebungskonfiguration , mit der Sie die Konfiguration für jede Umgebung außer Kraft setzen können.
quelle
composer require --dev drupal/devel
. Ein zusätzlicher Bonus ist, dass die Composer-Installation schneller ist und die Bereitstellung von Produkten schneller erfolgt.Update : Die unten beschriebene Funktion wurde kürzlich unter https://www.drupal.org/project/config_split/issues/2926505 entfernt
Wenn Sie in Ihrem Bereitstellungsprozess Drush verwenden, können Sie Folgendes tun:
Erstellen Sie eine
drushrc.php
Datei in demselben Verzeichnis wie Ihresettings.php
(zum Beispiel:)docroot/sites/default
und geben Sie Folgendes ein:Dies bedeutet, dass Sie die
drush cex
/drush cim
-Befehle manipulieren können, um Module während ihres Vorgangs zu überspringen.Weitere Informationen zur Verwendung des Konfigurationsmodulfilters in Drush 8 finden Sie hier .
quelle
drush cex --skip-modules
wurde zugunsten von config_split entfernt, wie in dieser Ausgabe erläutert , daher haben die hier auf drush basierenden Lösungen für mich nicht funktioniert.Hier ist die Lösung basierend auf der Duncanmoo-Lösung mit dem config_exclude- Modul
1. Installieren Sie config_exclude mit Composer require --dev und konfigurieren Sie es
Erlaube settings.php in deiner lokalen Entwicklungsumgebung zu verwenden
Fügen Sie config_exclude-Einstellungen in die lokale Datei ein
Hier sind einige Beispieleinstellungen
HINWEIS 1: config_filter ist eine config_exclude-Abhängigkeit. Wenn Sie es also nicht benötigen, können Sie es oben ausschließen
Hinweis 2: Die
settings.local.php
ist nicht erforderlich. Es hängt davon ab, ob Ihr VCS dies steuert oder nicht.2. Der Komponist benötigt --dev
Wenn Sie ein Modul aktivieren, das nur für die Entwicklung vorgesehen ist, verwenden Sie das Flag --dev:
Dies führt dazu, dass diese Abhängigkeiten in die Datei composer.json unter require-dev eingefügt werden:
Wenn Sie die Site also OHNE die von Ihnen verwendeten Dev-Module installieren, gehen Sie wie folgt vor:
HINWEIS: In Ihrer Staging- und Produktivumgebung sollten Sie immer --no-dev ausführen
3. Verwenden Sie Drush Cex wie gewohnt
exportiert keine der ausgeschlossenen Moduleinstellungen
ANMERKUNG: Ich habe bemerkt, dass die core.extension- Einstellungen nach dem Ausführen des obigen Befehls geändert wurden, aber die entsprechende .yml-Datei nie auf die Festplatte geschrieben wurde (auch nicht nach der Bestätigung
will be deleted and replaced with the active config
) Interna des Moduls config_excludequelle
Für Drupal 8.3.x gibt es ein interessantes Problem: Entwicklungsmodule können den Konfigurations-Export deaktivieren . Allgemein besteht Einigkeit darüber, dass Configuration Split derzeit die beste Lösung ist.
Kommentar von swentel :
Kommentar von geerlingguy :
quelle
Konfigurations-Split könnte für einige eine praktikable Lösung sein.
https://www.drupal.org/project/config_split
quelle
Es gibt eine gute Möglichkeit, dies zu tun, bei der Sie Ihre Entwicklungsmodule der Einfachheit halber in Composer übergeben und die Konfiguration dieser Module nicht zu Ihrem Konfigurations-Export hinzugefügt werden (es gibt zwei Teile):
1. Composer erfordert --dev Wenn Sie ein Modul aktivieren, das nur für die Entwicklung vorgesehen ist, verwenden Sie das Flag --dev:
Dies führt dazu, dass diese Abhängigkeiten in die Datei composer.json unter require-dev eingefügt werden:
Wenn Sie also die Site OHNE Ihre Dev-Module installieren, sagen Sie:
NB: In Ihrer Staging- und Produktivumgebung sollten Sie immer --no-dev ausführen
2. Verwenden Sie das Modul config_split
Mit dem Konfigurations-Split-Modul können Sie Gruppierungen für den Konfigurationsexport erstellen, die in einer Umgebung aktiviert oder deaktiviert werden können.
Ich habe tatsächlich 3 Splits:
quelle
Ich habe ein kleines Skript erstellt, um alles auf einmal zu erledigen.
quelle
Sie können auch das Modul Config Ignore sehen .
quelle
Sie können hierfür ein Modul zum Überschreiben der Bereitstellung verwenden. Lesen Sie den folgenden Link für eine detaillierte Beschreibung:
http://dcycleproject.org/blog/46/continuous-deployment-drupal-style
Der beste Weg, dies zu tun, ist jedoch, das Modul lokal zu deaktivieren und dann die Konfiguration zu exportieren.
Drupal bietet eine Möglichkeit, die Konfigurationseinstellungen in zu überschreiben
settings.php
, sie sind jedoch nicht zum Deaktivieren / Aktivieren von Modulen gültig.Von
default.settings.php
:quelle