Em que ordem as atualizações de importação e módulo de configuração devem ser executadas?

10

Como a versão do esquema dos módulos é armazenada no armazenamento de valores-chave, ela é exclusiva para cada site e não é sincronizada através do gerenciamento de configuração. Isso faz sentido, pois as atualizações podem precisar fazer ajustes que não estão encapsulados na configuração (como atualizações do banco de dados), mas há outras alterações que também podem ser incluídas na configuração (por exemplo, adicionar um novo valor de configuração).

  • Existe algum risco de executar a importação da configuração e as atualizações do banco de dados em qualquer ordem?
  • Qual é a ordem preferida para executar essas operações?
  • Os ganchos de atualização precisam fazer acomodações especiais para itens de configuração que já podem ter sido importados?
  • Existem outras operações necessárias para atualizar completamente o ambiente de produção?
gapple
fonte
Questão relacionada: drupal.org/node/2901418 :
milkovsky

Respostas:

11

As atualizações devem ser executadas antes da importação da configuração

Um problema pendente no núcleo garantirá que as versões de código e esquema correspondam antes de permitir a importação da configuração .


Problemas com a importação de configuração antes das atualizações

  • Um gancho de atualização que depende de um valor de configuração pode terminar em um resultado diferente do que se fosse executado no valor de pré-importação.

  • Uma atualização poderia falhar se tentasse criar entidades de configuração que já existem.

Preocupações com a importação de configuração após atualizações

  • Se uma atualização que introduz uma nova entidade de configuração for executada primeiro, ela criará um novo item de configuração que terá um UUID diferente do que está na configuração. No entanto, uma vez que a configuração é importada, a entidade deve ser substituída pela versão de configuração.

    Pode haver um problema em potencial aqui se a substituição da entidade afetar o conteúdo associado. Por exemplo, se uma atualização migrar o conteúdo de um campo para outro, na importação de configuração, o campo será completamente substituído e o conteúdo potencialmente perdido. Nesse caso, o processo de implantação pode precisar ser ajustado para executar as atualizações no ambiente de destino e exportar a configuração resultante.

gapple
fonte
Eu já havia deixado uma resposta de que a ordem não importa (apenas que a ordem das atualizações e configurações deve ser a mesma que foi implementada). Estou pensando que estava errado, porque você sempre deve exportar a configuração após a atualização. Portanto, no local, atualize e exporte, implemente, atualize e importe.
ognockocaten
Como o problema vinculado discute, há um caso em que as atualizações de nossa entidade exigem que um novo campo seja importado ou o gancho post_update falhará. Nesse caso, precisamos da importação da configuração feita antes da atualização do banco de dados. Parece que o take mais frescos sobre isso é aqui: drupal.org/project/drupal/issues/2901418
atwixtor