A importação de configuração para certos itens parece falhar. Como faço para corrigir isso?
Depois de sincronizar a configuração do dev para o staging, espero que todas as alterações sejam importadas e que uma mensagem seja exibida, informando "Não há alterações de configuração para importar"
A maioria das alterações foi importada, mas fiquei com seis itens que pareciam ter falhado na importação. Ou, pelo menos, não limpe da lista de itens para importação.
Não entendo por que a configuração ativa parece não ser atualizada pelo staged.
Além de importar todos, também tentei importar cada item separadamente, sem sucesso.
Além de usar a interface do usuário, também tentei drush cim. Drush confirma que a configuração foi importada com sucesso. Mas se eu executar drush cim novamente, os mesmos 6 arquivos permanecerão.
Por que parece que a importação está falhando e o que devo fazer para corrigir isso? Minha configuração ativa está bagunçada de alguma forma?
Uma captura de tela e algum código para ilustrar o problema.
Via UI

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]:
>
Respostas
Descobri que esse tipo de coisa ocorre porque a configuração em seu diretório de sincronização não é totalmente legítima. Meu palpite é que este é um problema no seu ambiente de desenvolvimento e local também, não apenas no teste.
Descobri que a causa desse problema geralmente é o resultado de uma de duas coisas:
1. Os arquivos de configuração foram manipulados manualmente e a configuração no arquivo não é possível.
Um exemplo, olhando para o seu pastebin, a mudança para core.entity_view_display.node.page.default.yml é remover o campo criado da lista de campos ocultos nesse display. No entanto, não há configuração de como o campo deve ser exibido. Um campo não pode ser não exibido e também não pode ser oculto. Para manter a integridade da configuração, o sistema padroniza um campo como oculto quando não está em nenhum dos lugares.
2. As atualizações do banco de dados foram executadas, atualizações que alteram a configuração, mas a configuração não foi exportada no ambiente de desenvolvimento após a atualização.
Um exemplo, olhando para seu pastebin, parece que algumas novas opções de configuração (com valores padrão apropriados) foram adicionadas. Também parece que um módulo mudou de trabalhar com true
e false
para 1
e 0
.
Para resolver esse problema:
Primeiro vá para o seu ambiente de desenvolvimento principal. Em seguida, obtenha seu banco de dados de registro mais recente, limpe o cache e implante (atualizações do banco de dados e importe sua configuração). O resultado deve ser o mesmo que você está vendo no teste, ou seja, algumas configurações parecerão não estar totalmente sincronizadas. Isso é esperado (pelos motivos descritos acima). Em seguida, reexporte sua configuração, confirme e reimplante.
Para evitar esse problema no futuro:
- Não manipule arquivos de configuração diretamente. Se fizer isso, teste a configuração localmente para ter certeza de que acertou (isso inclui depois de resolver conflitos de mesclagem em arquivos de configuração).
- Sempre exporte a configuração após executar atualizações do banco de dados. Às vezes, as atualizações mudam a configuração.