A ciência por trás de uma migração bem-sucedida do Drupal 7 para 9 (e por que alguns deles falham)

Publicados: 2021-12-15

Lembra daquele ótimo site que todos na sua empresa adoraram (ou pelo menos toleraram) que você foi forçado a migrar para um sistema mais novo? E a equipe em que você confiou para fazer isso talvez mordeu mais do que pode mastigar? O que pode ter sido uma vez um site perfeitamente bonito e funcional, agora se torna uma bagunça de problemas bizarros, desempenho ruim ou, às vezes, um site quase inutilizável.

Se isso soa familiar e você está enfrentando problemas estranhos depois de atualizar seu site Drupal 7 (ou 6) para Drupal 9 (ou 8), leia este artigo até o final . Vamos abordar os problemas comuns que os proprietários de sites enfrentam após atualizarem o Drupal 7 (ou 6) para o Drupal 9 (ou 8) e como eles podem ser resolvidos. Isso não cobrirá todos os problemas que vemos quando entramos para um resgate de migração, mas pelo menos deve levá-lo a um ponto em que você possa dormir à noite.

Drupal 7 a Drupal 9

Atualização do Drupal 7 para 9 - O Desafio Fundamental

A primeira pergunta que você provavelmente está se fazendo é: “Por quê?” Atualizar do Drupal 7 para o Drupal 9 (o Drupal 8 foi desativado) parece que não deve ser tão difícil do ponto de vista da plataforma.

Bem, Drupal 8 mudou tudo. Ele teve uma revisão arquitetônica completa para que o CMS pudesse ser mais sustentável, relevante e mais fácil de entender a longo prazo. A adoção de tecnologias e frameworks modernos, como programação orientada a objetos, Symfony, Twig, versões mais recentes do PHP e (muito) mais, também permitiram que a comunidade Drupal crescesse exponencialmente, acomodando uma ampla gama de habilidades para ajudar a construir o Drupal. O que significa que agora é mais fácil encontrar um especialista para construir e manter seu site Drupal. A boa notícia é que atualizar para qualquer versão futura do Drupal (como Drupal 8 para Drupal 9) após a migração inicial é extremamente fácil e não exigirá uma reconstrução.

Mas voltando ao problema em questão, muitas organizações ainda estão migrando do Drupal 7 para o 9 , o que envolve uma reconstrução completa do site. A reconstrução em si é complexa o suficiente sem manter a estrutura de conteúdo atual que pode dar aos desenvolvedores mais experientes. E, na maioria dos casos, sites maiores precisam de ainda mais atenção, pois tendem a ter várias contribuições e módulos personalizados que não têm um caminho de atualização direto. Tudo isso junto abre infinitas oportunidades para erros.

Para equipes que não tentaram esse tipo de migração, na maioria das vezes, o primeiro erro de migração do Drupal 7 para 9 é a falta de preparação. O primeiro e mais significativo passo para uma migração bem-sucedida do Drupal é fazer uma auditoria de migração completa para analisar cada pequeno detalhe da estrutura atual do site . Este relatório não apenas ajuda a avaliar as implicações da migração, mas também fornece insights sobre áreas de melhoria. O próximo passo mais importante é decidir se permite que um parceiro de desenvolvimento Drupal especializado (alguém que respira Drupal dia após dia) faça a migração. Assim como você preferiria que um cirurgião cardíaco realizasse uma cirurgia de revascularização do que um cirurgião ortopédico; ter uma empresa especializada focada em Drupal para construir seu site Drupal levará a uma migração bem-sucedida.

Auditoria de migração

Desafios comuns de migração do Drupal 7 a 9

Uma das fontes mais comuns de frustração após uma migração do Drupal de 6/7 para 8/9 é não saber por onde começar ao lidar com problemas. Como você, com ou sem habilidades de codificação, descobre onde estão os verdadeiros problemas? Fácil - verifique seus logs de erro. Eu sei, parece que você está abrindo outra lata de vermes tentando entender o que os logs dizem, mas vamos orientá-lo pelos mais comuns abaixo.

Como encontrar meus logs de erro?

  1. Certifique-se de ter habilitado o módulo dblog em sua página admin -> modules. Este é um módulo central.
  2. Vá para admin -> relatórios
  3. Clique em Logs do banco de dados. Você deve ver todos os seus logs de erro aqui.

Vamos mergulhar direto em alguns dos problemas mais comuns enfrentados pelos proprietários de sites Drupal após a migração do Drupal 7 para o Drupal 9.

O site mal está funcionando / quebrado

  1. Problemas no servidor: Seu servidor pode ser comprometido se você não tiver permissões suficientes para acessar seu servidor. Uma análise mais profunda dos logs de erros ajudará você a entender a origem do problema. Se for um problema de servidor, verifique se você tem direitos suficientes para acessar seu servidor. Entre em contato com seu provedor de hospedagem para aumentar seu limite de memória se estiver enfrentando um problema de falta de espaço. Se isso não ajudar, abra um ticket com eles mencionando o problema do seu servidor.
  2. Código personalizado: se o seu site Drupal 6/7 fosse mais complexo do que o esperado, é provável que, em vez de avaliar o código personalizado e mapeá-lo adequadamente antes da migração, foi realizado um levantamento e mudança simples. Se você tiver condições personalizadas que são acionadas quando sua página for carregada e ela não encontrar o código personalizado associado a ela, você terminará com uma página quebrada. A primeira coisa a fazer é verificar se você avaliou o site corretamente em sua auditoria de migração (se você fez uma) para verificar se há módulos e códigos personalizados. Se o problema for devido a uma condição personalizada e o código estiver ausente, você precisará do desenvolvedor do Drupal para criar a implementação do código personalizado. O ideal é que o código personalizado tenha sido criado antes da migração de qualquer conteúdo.
  3. Módulo Core/Contrib: Às vezes, você pode encontrar um problema conhecido em seu módulo principal ou contribuído que já possui uma solução/patch. Um pouco de pesquisa pode ajudar a identificar isso. Encontre e aplique o patch e você deve estar pronto para ir.
  4. Versão/bibliotecas desatualizadas do PHP: Seu novo site Drupal ainda pode estar executando uma versão mais antiga do PHP ou bibliotecas das quais seu código depende. Certifique-se de que seu site implemente a versão mais recente do PHP e outras bibliotecas. Verifique também se todos os requisitos e configurações do sistema foram atendidos.

Não é possível editar páginas (problemas de permissão)

  1. Erro 500: Se você não conseguir editar páginas porque está executando um erro 500 de servidor interno, pode ser por vários motivos (configuração incorreta, código incorreto, indexação incorreta, agregação etc.). No entanto, um dos motivos mais comuns é que pode ser devido a uma incompatibilidade entre os formatos de campo ou campos ausentes. Por exemplo, se o campo de data do seu site Drupal 7 não for migrado no formato correto ou o valor não foi transformado para o formato Drupal 9, ele gerará um erro. Outro exemplo é se no Drupal 7 você estiver usando o campo Imagens, mas, no Drupal 9, estiver usando um campo de mídia. A melhor maneira de corrigir isso é corrigir o script de migração para armazenar os dados corretamente. Se houver apenas alguns campos para editar, você também poderá criar uma atualização de gancho.
  2. Erro 403: Muitas vezes, o erro 403 ocorre devido à transferência incorreta de permissões. Verifique se as permissões estão configuradas corretamente. Se você estiver usando um módulo para gerenciar seus usuários, verifique se ele está disponível no Drupal 9. Às vezes, você pode ter ganchos ou assinantes de eventos restringindo o acesso a alguns usuários. Verifique essas condições e certifique-se de que também esteja implementado em sua nova instalação.
  3. A página de permissões não está respondendo: seu site Drupal pode estar implementando algum código personalizado para lidar com permissões. Se esse código não for implementado no novo site do Drupal 9, talvez você não consiga visualizar ou editar (ou ambos) a página de permissões. Ocasionalmente, vemos situações em que os usuários foram migrados em massa sem migrar adequadamente suas funções e perfis de usuário. Como prática padrão, antes de migrar permissões, o desenvolvedor deve criar permissões personalizadas e atribuí-las a funções de pessoas/permissões.

Desempenho do site miserável

  1. Módulos desnecessários: Os módulos são os blocos de construção do seu site Drupal, então você vai querer migrá-los também. Mas às vezes vemos módulos Drupal 7 desatualizados e desnecessários movidos para o Drupal 9, o que pode causar todos os tipos de problemas. Especialmente porque eles podem sobrecarregar seu site. Aqui estão alguns motivos pelos quais alguns de seus módulos não precisam ser migrados:
    • O módulo (ou sua funcionalidade) já foi movido para o Drupal Core. Por exemplo, o módulo de contribuição de mídia foi movido para o núcleo no Drupal 8.5, o que elimina a necessidade de usar o módulo de contribuição.
    • Sua funcionalidade é simples e pode ser inserida em outro módulo personalizado. Por exemplo, se um módulo node::postSave for usado apenas para um ou dois tipos de conteúdo para escolher onde o usuário deve ir depois que o nó for criado, pode ser possível mover o código para um módulo personalizado.
    • Os requisitos para o módulo precisam ser reavaliados. Às vezes, uma pequena mudança na usabilidade pode melhorar enormemente o desempenho do site. Por exemplo, todos os sites não precisam realmente de um módulo de moderação de conteúdo, a menos que a equipe de marketing de conteúdo seja grande e distribuída. Os principais recursos de fluxo de trabalho editorial do Drupal (Rascunho, Publicação) são bons o suficiente para a maioria dos requisitos de negócios que não precisam de um fluxo de trabalho complexo/detalhado.
    • Às vezes, os submódulos são instalados junto com os módulos, mas raramente/nunca são usados. Esses submódulos devem ser removidos.
  2. Replicando a mesma arquitetura: embora seja mais fácil simplesmente levantar, deslocar e tirar a poeira de uma migração, quase nunca é uma boa abordagem. Especialmente se a arquitetura mais antiga (Drupal 6/7) fosse confusa e menos robusta. Uma mudança na lógica/requisitos de negócios também pode precisar de uma rearquitetura completa. Uma auditoria completa do local lhe dirá exatamente quais módulos precisam ser mantidos e o que pode ser eliminado com segurança.

Integrações de terceiros não funcionam mais

  1. Versão da API desatualizada: se o seu site estiver conectado a diferentes ferramentas de terceiros, como Salesforce, Marketo, Mailchimp, etc, uma migração executada incorretamente pode afetar o funcionamento dessas integrações. Muitas vezes é que a API que você está chamando no módulo de integração Drupal é uma versão mais antiga. A única correção é que a integração deve ser escrita na versão mais recente da API de terceiros.
  2. Problemas no módulo de integração: Você precisará verificar se as APIs de terceiros estão sendo chamadas corretamente no módulo de integração. Os parâmetros estão sendo passados ​​adequadamente? Verifique como eles são definidos e recuperados. Verifique a fila de problemas desse módulo de integração. Pode haver um patch disponível que precisa ser aplicado. Testes adequados precisam ser feitos para garantir que a API tenha sido portada corretamente para o Drupal 9.

Outros problemas e correções comuns

  1. Instalação do módulo: Sempre use o compositor para instalar os módulos. Isso evitará erros devido a dependências inválidas/indisponíveis.
  2. Incompatibilidade de origem de migração: não importa qual seja sua origem de migração (CSV, banco de dados, JSON, XML), verifique se os campos de origem correspondem aos campos de destino. Se você estiver usando CSV como sua fonte, lembre-se da ordem de importação - a prioridade é importante para mapear os tipos de conteúdo.
  3. Caminhos de imagem: Muitas vezes, os usuários adicionam imagens diretamente no conteúdo do CKEditor. Essas imagens nem sempre vão para o caminho designado quando migradas porque sua localização geralmente é diferente de onde os outros arquivos de mídia estão localizados. Uma migração meticulosamente planejada deve resolver esse problema.
  4. SEO: Uma migração negligente do Drupal 7 para 9 pode afetar o SEO do seu site de várias maneiras. Um dos problemas mais significativos são os links quebrados. Certifique-se de que a estrutura e a navegação do URL existente sejam preservadas, pois qualquer alteração pode levar a muitos links quebrados. Uma auditoria completa de SEO precisa ser feita para garantir que não haja obstáculos no caminho.
  5. Estilo Drupal 7: Frequentemente, problemas de migração do Drupal 7 para Drupal 9 (especialmente problemas de desempenho) surgem porque os desenvolvedores usam o mesmo estilo de codificação do Drupal 7 em vez de se adaptar às mudanças trazidas pelo Drupal 8. Exemplos, (a) a maneira como você mata O cache de página é muito diferente no Drupal 8. (b) O Drupal 8 possui gerenciamento de configuração embutido, mas geralmente não é implementado da maneira correta ou mantido bem em todos os ambientes. (c) Também encontramos casos em que o projeto Drupal 8 ainda está implementando o estilo de código procedural.