J'ai cette erreur lorsque j'essaie d'importer la configuration d'un autre site:
La configuration intermédiaire ne peut pas être importée, car elle provient d'un site différent de ce site. Vous ne pouvez synchroniser la configuration qu'entre des instances clonées de ce site.
J'ai 10 clients et je dois synchroniser la configuration de mon site avec 10 sites Web différents.
L'UUID du site est un problème pour partager une configuration avec un autre site Web. Y a-t-il une solution?
Vous pouvez obtenir l'UUID avec:
drush config-get "system.site" uuid
Et vous pouvez le changer avec
drush config-set "system.site" uuid "fjfj34-e3bb-2ab8-4d21-9100-b5etgetgd99d5"
Avec ça, tu dois avoir les mêmes sites.
La gestion de la configuration permet uniquement la synchronisation de la configuration entre le même site ou projet pour éviter les problèmes d'importation de configuration du site a.com vers b.com, pour effectuer cette validation Drupal 8 générer un UUID pour chaque site.
Vous obtenez votre UUID de site actuel en exécutant la commande suivante:
drush cget system.site
La commande ci-dessus aura une sortie similaire à la liste suivante:
uuid: 236fa77c-d83e-42de-8a03-03c574c00160
name: Drupal 8
mail: [email protected]
slogan: ''
page:
403: ''
404: ''
front: node
admin_compact_mode: false
weight_select_max: 100
langcode: en
L'importation de configuration a un UUID différent, vous pouvez confirmer l'UUID avec la commande suivante
cat sites/default/config/staging/system.site.yml
Pour cette raison, vous devez modifier la valeur de l'UUID du site à l'aide de la commande Drush suivante:
drush cedit system.site
La commande ci-dessus vous permet d'utiliser votre éditeur de texte préféré pour définir le même UUID présent dans les fichiers de configuration de transfert.
cat sites/default/config/staging/system.site.yml
Après avoir modifié l'UUID et modifié les autorisations, si vous visitez à nouveau la page example.com/admin/config/development/configuration, vous verrez toutes les modifications, suppressions, renommages et ajouts.
source: http://enzolutions.com/articles/2014/08/27/understanding-configuration-management-in-drupal-8/
Vous pouvez obtenir la même chose avec Drupal Console en remplaçant le system.site
- uuid
clé.
$ drupal config:override
Saisissez ensuite le nom de la configuration system.site
, la clé de configuration uuid
et la valeur appropriée lorsque vous y êtes invité.
Enter configuration name [advagg.settings]:
> system.site
Enter the configuration key [uuid]:
> uuid
Enter the configuration value:
> 656165f1-1017-45a1-9bd8-f70e31cf29ab
Configuration name system.site
------------------- -------------------------------------- --------------------------------------
Configuration key Original Value Override Value
------------------- -------------------------------------- --------------------------------------
uuid 7622bb19-5f3f-452d-82a3-c0a88241e789 656165f1-1017-45a1-9bd8-f70e31cf29ab
------------------- -------------------------------------- --------------------------------------
Vous pouvez obtenir l'UUID du site sans accès au site ou à la base de données.
Si vous n'avez pas accès au site/base de données d'origine, vous pouvez toujours synchroniser à partir des fichiers de configuration fournis. La configuration contiendra l'UUID de votre site, vous devez donc le définir en premier.
Trouvez votre répertoire config/sync: s'il est déplacé, vous pouvez trouver où il a été défini dans settings.php
. Chercher: $config_directories['sync']
, qui listera le chemin.
Accédez à ce chemin de configuration et recherchez le fichier: system.site.yml
Dans ce fichier, recherchez uuid: 86b376c5-385e-4d13-bf00-e5e5443540e3
(vous aurez évidemment une valeur différente). Copiez cette valeur.
Dans le drush, définissez votre site sur le même uuid de site que nous venons de découvrir: drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3
Synchronisez la configuration à l'aide de drush drush cim -y
Si vous obtenez des erreurs, lisez-les . J'avais:
Une fois que j'ai fait ça, j'ai relancé le cim, et tout a fonctionné comme un charme!
J'avais installé une instance D8 locale avant d'essayer de restaurer à partir de la configuration fournie.
Vous pouvez modifier l'UUID du site de destination à l'aide de drush cset et drush cget.
Obtenez d'abord l'UUID source:
$ cd ~/Sites/sourcesite <-- your drupal site root
$ drush cget system.site uuid
This will return something like:
'system.site:uuid': 86b376c5-385e-4d13-bf00-e5e5443540e3
Remplacez l'UUID de destination
cd ~/Sites/destinationsite <-- your drupal site root
$ drush cset system.site uuid 86b376c5-385e-4d13-bf00-e5e5443540e3
Maintenant vous pouvez:
Pour les gens qui en ont assez de recommencer. J'ai finalement trouvé une solution pour le faire automatiquement. Vous devriez ajouter une pré-commande pour config: importez avec drush pour définir l'uuid. Lisez tout à ce sujet ici: https://stefvanlooveren.me/blog/fixing-systemsite-uuid-config-import-problem-drupal-8
Si vous suivez les instructions de la réponse de Gucho Ca et que vous rencontrez toujours le problème, assurez-vous de vérifier que vous disposez des autorisations d'écriture dans votre répertoire de configuration de synchronisation. Il vous donnera ce même message d'erreur, même si vos uuids sont les mêmes, mais votre système n'a pas de droits d'écriture.
Un bon moyen de vérifier consiste à cliquer sur l'onglet Importer de la section Synchroniser. Si vous ne disposez pas des autorisations de fichier correctes, il vous le dira.