Wir hatten vor ein paar Monaten ein Drupalcamp und jemand fragte nach der Verwaltung von Bereitstellungen mit dem neuen Konfigurationssystem (CMI). Ein möglicher idealer Workflow besteht darin, die Konfiguration in der Versionskontrolle zu belassen und dennoch die Konfiguration zwischen Teammitgliedern migrieren zu können.
Das Beste, was wir im Raum herausfinden konnten (teilweise basierend auf der Präsentation auf der DrupalCon Portland), war:
- Weisen Sie die Versionskontrolle an, das aktive Konfigurationsverzeichnis zu ignorieren.
- Kopieren Sie die gesamte Konfiguration in das Staging-Verzeichnis und übernehmen Sie die Versionskontrolle.
Verwenden Sie settings.php, um das Active / Staging-Verzeichnis zwischen den beiden Umgebungen umzukehren. Obwohl das Herausfinden eines Bereitstellungs-Workflows von einem Server zum nächsten komplex, aber machbar war, ist der vorgeschlagene Workflow von mehreren lokalen Umgebungen (dh mehreren Entwicklern) zu dev (oder untereinander) ein mögliches Problem für jedes Teammitglied würde die gleiche oder eine ähnliche Umgebung teilen, also wie kommen Änderungen auf dem Computer eines Teamkollegen zustande?
quelle
Antworten:
Nach einem kurzen Gespräch mit den CMI-Betreuern ist die Diskussion darüber, was der beste Ansatz ist, noch nicht abgeschlossen. Im Folgenden wird jedoch erläutert, was im Moment am sinnvollsten ist.
Wenn Sie versuchen, es vorerst knapp zu halten, wird versucht, anhand von Fragen zu erweitern, bzw. wenn das Problem, auf das verwiesen wird, mit einer offiziellen Antwort behoben ist.
Also, zuerst die Fakten ...
Angesichts dessen empfiehlt es sich derzeit, das Staging-Verzeichnis in die Versionskontrolle einzubeziehen. Jeder Entwickler hat dann die volle Kontrolle darüber, was er dort ablegt, indem er entweder das gesamte Active Directory oder nur eine bestimmte Konfigurationsdatei kopiert. Die Staging-Verzeichnisänderungen werden dann festgeschrieben, an die Produktion weitergeleitet und der Konfigurationsimport wird ausgeführt (in der Benutzeroberfläche oder mit drush).
quelle
Great hat bisher geantwortet. Danke euch allen!
Wir haben kürzlich ein Drupal 8-Projekt gestartet und den folgenden Workflow implementiert.
Wir haben drei Ordner aktiv, Staging und Export. Entwickler geben ihre Daten für den Export aus. Ich möchte es nicht auf der Bühne lassen. Ich denke, es ist einfacher, damit zu arbeiten, wenn die freigegebene Konfiguration nicht direkt im Staging-Ordner gespeichert ist. Es ist nur ein Einfall, dass ich keine harten Fakten darüber habe ...
Unsere aktuelle Drupal 8-Projektvorlage ist auf github verfügbar. Ich habe auch einige praktische Drush-Befehle geschrieben, um den Devleoper-Workflow zu beschleunigen. Es ist kein manuelles Kopieren vom aktiven in den Export erforderlich.
quelle
sites/default/files/config_HASH
Config - Ordner einen Hash - Suffix, zB config_wNOLcmycPFZCrXJ9wis9dCdSR4lpYILdBsFxSWuK5HzhcrIch habe dies noch nicht ausprobiert, aber mein Plan ist es, ein benutzerdefiniertes Modul zu erstellen, das "Standard" -Konfigurationsdateien enthält, die nur die Konfiguration enthalten, die mir wichtig ist. Ich glaube, dass andere Module Configs enthalten können, die andere Module überschreiben. (Wenn nicht, sollte dies möglich gemacht werden).
Ich denke du musst den config Ordner in Ruhe lassen. Ignoriere es. Es wird bei der Installation automatisch aus allen Konfigurationsdateien der einzelnen Module generiert. Der Weg ist lang und zufällig. Wenn Sie all das in einem Repo aufbewahren würden, würden Sie ein separates Repo benötigen und Tonnen von nicht benötigten Standard-Konfigurationsdateien mit sich führen.
Das Einfügen von config in ein benutzerdefiniertes Modul macht es zu einem Teil Ihrer Hauptcodebasis.
Der Bereitstellungsprozess wäre:
Sie können benutzerdefinierte Module (mit eigener Konfiguration) für jede Umgebung erstellen, wenn Sie möchten.
quelle
Hinweis: Ich weiß zu schätzen, dass dies in Bezug auf die Frage keine im engeren Sinne zutreffende Antwort ist, aber ich habe sie trotzdem hierher gestellt und werde sie überarbeiten und bearbeiten / löschen, sobald Features eine 8.x-Version und der Staub hat etwas mehr angesiedelt. Dies war einfach zu groß für einen Kommentar und ich wollte meine £ 0.02 in bekommen :-)
Als großer Fan von Features würde ich vorschlagen, die D8-Inkarnation des Features- Moduls im Auge zu behalten .
Aus der Projektseite entnommen
Die Art , wie ich irgendwie es sehe , ist , dass diese Idee macht es einfacher für Entwickler - Teams an die Arbeit auf kleinere Teile einer Website. Ich werde noch nicht auf einen Workflow eingehen, da es immer noch zu viele unbekannte Variablen gibt, aber ich kann nicht sehen, dass er sich stark von einer aktuellen Bereitstellungsprozedur für Features unterscheidet.
Ich kann nicht anders als zu denken, CMI ist großartig. Die meisten meiner Websites werden jedoch immer noch Features-Module enthalten (wenn auch eine geringere Menge, da nicht JEDER Inhaltstyp, jede Berechtigung usw. exportiert werden muss).
quelle