Ich weiß nicht , wie die „ Klonen Website“ Lösungen , die impliziert Dumping in einer anderen Umgebung eine Datenbank und importieren diese Müllhalde. Dies sieht nicht nach einer realen Methode zur Bereitstellung mehrerer Instanzen derselben Website aus (Staging / Prod / Dev / etc).
In D7 haben wir normalerweise benutzerdefinierte Profile verwendet und Websites aus diesen Profilen mithilfe von Drush installiert (und möglicherweise Funktionen für spätere Websitesynchronisierungen verwendet). Dadurch erhielten wir Neuinstallationen, keinen Testinhalt, aber wichtige Einstellungen. Übliche Inhaltssynchronisierungen würden beispielsweise mit migrate durchgeführt.
Ich habe versucht, mehrere D8-Instanzen mit denselben Installationsprofilen zu verwalten. Ziel ist es, Standortkonfigurationen gemeinsam zu nutzen und zu synchronisieren. Und jede Installation hat eine andere Site-UUID. Es system.site uuid
gelingt mir nicht, die Konfigurationsvariable bei der Installation durchzusetzen (natürlich kann ich den Wert später ändern, aber es scheint mir, dass dies zu spät ist und alle Objekte bereits mit unterschiedlichen UUIDs erstellt wurden, was die erste Synchronisierung zu einem Albtraum macht , wo einige Standardinhalte gelöscht werden müssen oder die Standardsprache die Synchronisierung zum Absturz bringt, weil sie nicht entfernt werden kann, usw.).
Um diese UUID zu erzwingen, habe ich versucht, eine generierte settings.php-Datei mit einem $config['system.site']['uuid']
inneren Wert zu verwenden.
Ich habe mir auch das Konfigurationsinstallationsprofil angesehen , das ich nicht vollständig verstehe, insbesondere die Art und Weise, wie diese Lösung mit einem anderen Installationsprofil gemischt wird.
Die Frage ist also, wie frische Sites aus einem Installationsprofil am besten bereitgestellt werden können:
- ohne "Klonen von Websites" und Manipulieren von SQL-Dumps bei der Site-Erstellung (wie in der Frage, was sind geklonte Sites ).
- mit einem frischen sauberen Installation (ohne Entwickler Inhalt Müll), die exportierte Konfiguration und Code nur
- Hier können sowohl Installationskonfigurationsstandards als auch spätere Synchronisierungen verwaltet werden
quelle
Andere Option:
quelle
Basierend auf dem @ Ivan Jaros-Hinweis können Sie bei der Installation eines Profils bestimmte Konfigurationsoptionen festlegen. Dies funktioniert natürlich nur bei der Installation und nicht, wenn eine Site bereits installiert ist.
In der .install-Datei Ihres Profils können Sie in den Standardkonfigurationseinstellungen Folgendes hinzufügen
hook_install()
:Ich habe das vor Ort ausprobiert und es funktioniert. Ich konnte die Konfiguration mithilfe des obigen Codes (mit der richtigen UUID) von einem anderen Standort in einen frisch installierten lokalen Standort ziehen, ohne
drush cset
die UUID des Standorts zu ändern.Vermutlich könnten Sie Ihre UUID so einstellen, dass sie aus einer Datei in Ihrer Umgebung oder einer Umgebungsvariablen oder einem Dienst stammt, und sie wären daher auf jeder Site mit diesem installierten Profil gleich.
Ich hatte gehofft, etwas Ähnliches zu tun,
settings.php
aber dieConfigFactory
Klasse ist zu diesem Zeitpunkt nicht verfügbar, und wie Sie in Ihrer Frage dargelegt haben, hat das Setzen über$config
insettings.php
keine Auswirkung.quelle