L'importation de la configuration pour certains éléments semble échouer. Comment puis-je réparer ça?
Après avoir synchronisé la configuration du développement à la préparation, je m'attendrais à ce que toutes les modifications soient importées et qu'un message s'affiche, indiquant "Il n'y a pas de modifications de configuration à importer"
La plupart des modifications ont été importées, mais il me reste six éléments qui semblent avoir échoué à l'importation. Ou du moins, ne pas effacer de la liste des éléments à importer.
Je ne comprends pas pourquoi la configuration active semble ne pas être mise à jour par étape.
En plus d'importer tout, j'ai également tenté d'importer chaque élément séparément, sans succès.
En plus d'utiliser l'interface utilisateur, nous avons également essayé drush cim. Drush confirme que la configuration a été importée avec succès. Mais si je lance à nouveau drush cim, les 6 mêmes fichiers restent.
Pourquoi l’importation échoue-t-elle et que dois-je faire pour y remédier? Ma configuration active est-elle en quelque sorte perturbée?
Une capture d'écran et du code pour illustrer le problème.
Via l'interface utilisateur
Via Drush
[easable]:sync$ drush cim +------------+-----------------------------------------------------+-----------+ | Collection | Config | Operation | +------------+-----------------------------------------------------+-----------+ | | block.block.schoolpwa_subtheme_bottommenu | Update | | | block.block.schoolpwa_subtheme_mainnavigation | Update | | | block.block.mainmenu2 | Update | | | block.block.websiteswitcher | Update | | | core.entity_view_display.node.page.default | Update | | | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update | +------------+-----------------------------------------------------+-----------+ Import the listed configuration changes? (yes/no) [yes]: > [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_bottommenu. [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_mainnavigation. [notice] Synchronized configuration: update block.block.mainmenu2. [notice] Synchronized configuration: update block.block.websiteswitcher. [notice] Synchronized configuration: update core.entity_view_display.node.page.default. [notice] Synchronized configuration: update media_bulk_upload.media_bulk_config.pdf_bulk_upload. [notice] Finalizing configuration synchronization. [success] The configuration was imported successfully. [easable]:sync$ drush cim
+------------+-----------------------------------------------------+-----------+
| Collection | Config | Operation |
+------------+-----------------------------------------------------+-----------+
| | block.block.schoolpwa_subtheme_bottommenu | Update |
| | block.block.schoolpwa_subtheme_mainnavigation | Update |
| | block.block.mainmenu2 | Update |
| | block.block.websiteswitcher | Update |
| | core.entity_view_display.node.page.default | Update |
| | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update |
+------------+-----------------------------------------------------+-----------+
Import the listed configuration changes? (yes/no) [yes]:
>
Réponses
J'ai trouvé que ce genre de chose est dû au fait que la configuration de votre répertoire de synchronisation n'est pas tout à fait légitime. Je suppose que c'est également un problème pour votre développement et vos environnements locaux, pas seulement pour la mise en scène.
J'ai constaté que la cause de ce problème est généralement le résultat de l'une des deux choses suivantes:
1. Les fichiers de configuration ont été manipulés manuellement et la configuration dans le fichier n'est pas possible.
Un exemple, en regardant votre pastebin, le changement pour core.entity_view_display.node.page.default.yml est de supprimer le champ créé de la liste des champs cachés sur cet affichage. Cependant, il n'y a pas de configuration pour la façon dont le champ doit être affiché. Un champ ne peut pas être affiché ni masqué. Pour maintenir l'intégrité de la configuration, le système définit par défaut un champ sur hidden lorsqu'il n'est à aucun endroit.
2. Des mises à jour de la base de données ont été exécutées, des mises à jour qui modifient la configuration, mais la configuration n'a pas été exportée sur l'environnement de développement après la mise à jour.
Un exemple, en regardant votre pastebin, il semble que de nouvelles options de configuration (avec les valeurs par défaut appropriées) ont été ajoutées. Cela ressemble également à un module changé de travailler avec true
et false
vers 1
et 0
.
Pour résoudre ce problème:
Accédez d'abord à votre environnement de développement principal. Ensuite, obtenez votre dernière base de données d'enregistrement, effacez le cache et déployez (mises à jour de la base de données, puis importez votre configuration). Le résultat devrait être le même que celui que vous voyez lors de la mise en scène, c'est-à-dire que certaines configurations sembleront ne pas être entièrement synchronisées. Ceci est attendu (pour les raisons décrites ci-dessus). Ensuite, réexportez votre configuration, validez et redéployez.
Pour éviter ce problème à l'avenir:
- Ne manipulez pas directement les fichiers de configuration. Si vous le faites, testez la configuration localement pour vous assurer que vous l'avez bien (cela inclut après la résolution des conflits de fusion dans les fichiers de configuration).
- Exportez toujours la configuration après avoir exécuté les mises à jour de la base de données. Parfois, les mises à jour changent de configuration.