web-dev-qa-db-fra.com

Comment importer la configuration sur un autre site?

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?

52
Axel Briche

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.

64
Gucho Ca

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/

19
rpayanm

Utilisation de Drupal Console

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  
------------------- -------------------------------------- -------------------------------------- 
11
MrUpsidown

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.

  1. 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.

  2. 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.

  3. 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

  4. Synchronisez la configuration à l'aide de drush drush cim -y

  5. Si vous obtenez des erreurs, lisez-les . J'avais:

    • un module manquant (que je devais télécharger et activer)
    • le contenu du module de raccourcis, que j'ai dû supprimer en premier, à l'adresse:
    • admin> config> User Interfact> Raccourcis

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.

8
Atomox

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:

  1. Accédez au site de destination dans votre navigateur à admin/config/development/configuration/full/import
  2. sélectionnez l'archive de configuration et sélectionnez télécharger
  3. Vous verrez une liste de tous les éléments de configuration
  4. Faites défiler vers le bas et cliquez sur le bouton tout importer
5
Selwyn Polit

Comment automatiser le paramétrage de l'uuid system.site avant l'importation de la configuration

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

1

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.

0
MikeD