Je n'aime pas les solutions de "site de clonage " qui impliquent de vider une base de données et d'importer ce vidage dans un autre environnement. Cela ne ressemble pas à une manière réelle de déployer plusieurs instances du même site Web (staging / prod / dev / etc).
Avec D7, nous avons généralement utilisé des profils personnalisés et utilisé drush pour installer des sites Web à partir de ces profils (et peut-être utiliser des fonctionnalités pour des synchronisations de site ultérieures). Cela nous a fourni de nouvelles installations, aucun contenu de test, mais le partage de paramètres importants. La synchronisation de contenu commune serait effectuée avec migrate, par exemple.
J'ai essayé de gérer plusieurs instances D8 partageant les mêmes profils d'installation. Où l'objectif final serait de partager et de synchroniser les configurations de sites. Et chaque installation a un UUID de site différent. Je n'ai pas réussi à appliquer la system.site uuid
variable de configuration au moment de l'installation (bien sûr, je peux modifier la valeur plus tard, mais il me semble que c'est trop tard, et tous les objets sont déjà créés avec des UUID différents, ce qui fait de la première synchronisation un cauchemar , où certains contenus par défaut doivent être supprimés, ou la langue par défaut bloque la synchronisation car elle ne peut pas être supprimée, etc.).
Pour appliquer cet UUID, j'ai essayé d'utiliser un fichier settings.php généré avec une $config['system.site']['uuid']
valeur à l'intérieur, gros échec (le paramètre a été complètement ignoré, même après l'installation du site).
J'ai également examiné le profil d' installation de la configuration , que je ne comprends pas complètement, en particulier la façon de mélanger cette solution avec un autre profil d'installation.
La question est donc de savoir quelle est la meilleure façon de déployer de nouveaux sites à partir d'un profil d'installation:
- sans "clonage de sites Web" et sans manipulation des vidages SQL lors de la création de sites (comme dans le cas des sites clonés ).
- avec une nouvelle installation propre (sans les ordures du contenu des développeurs), en utilisant uniquement la configuration et le code exportés
- qui peut gérer à la fois les paramètres de configuration par défaut de l'installation et les synchronisations ultérieures
la source
Une autre option:
la source
Basé sur l'indice @Ivan Jaros, vous pouvez définir certaines options de configuration lors de l'installation d'un profil. Évidemment, cela ne fonctionne que lors de l'installation et pas une fois qu'un site est déjà installé.
Dans le fichier .install de votre profil, vous pouvez ajouter des paramètres de configuration par défaut dans
hook_install()
:J'ai essayé cela localement et cela fonctionne. J'ai pu tirer la configuration d'un autre site vers un site local fraîchement installé en utilisant le code ci-dessus (avec le bon UUID) sans utiliser
drush cset
pour changer l'UUID du site.Vraisemblablement, vous pouvez définir votre UUID pour qu'il soit extrait d'un fichier de votre environnement quelque part, ou d'une variable d'environnement ou d'un service, et ainsi ils seraient tous les mêmes sur n'importe quel site avec ce profil installé.
J'espérais faire une chose semblable de ,
settings.php
mais laConfigFactory
classe n'est pas disponible à ce moment et comme vous le mettre dans votre question via$config
ensettings.php
n'a pas d' effet.la source