Drupal.pt actualizado para Drupal 8

Drupal.pt

 

No último mês lançámos como jeito de provocação o desafio de actualizar o drupal.pt de Drupal 7 para Drupal 8. Drupal.pt é o site da comunidade portuguesa de Drupal e foi originalmente desenvolvido em 2010, um pouco antes do nosso primeiro drupalcamp.

O site contem páginas informativas, detalhes sobre eventos na comunidade, links para os perfís de utilizador, informação das redes sociais e de sites Drupal desenvolvidos em Portugal.

Aqui está o guia resumido dos passos para a migração:

- Olhámos para os tipos de conteúdos e vocabulários usados para verificar se ainda eram válidos. Os sites mudam ao logo do tempo e é normal que a arquitectura de informação também se altere. No nosso caso quase todos os tipos de conteúdos e taxonomia ainda eram válidos.

- Verificámos quais os módulos contrib usados no site e verificámos aqueles que eram mesmo necessários. Não usámos nada que não fosse indespensável dado que a maioria dos módulos contrib ainda não estão totalmente estáveis e disponiveis em Drupal 8.
In our case here is the list of modules we ended up with:
    "drupal/ctools": "8.3.*@alpha",
    "drupal/diff": "8.1.*@alpha",
    "drupal/entity": "8.1.*@alpha",
    "drupal/google_analytics": "8.2.*@stable",
    "drupal/honeypot": "8.1.*@stable",
    "drupal/markdown": "8.1.*@stable",
    "drupal/metatag": "8.1.*@beta",
    "drupal/mollom": "8.1.*@stable",
    "drupal/pathauto": "8.1.*@alpha",
    "drupal/token": "8.1.*@alpha",
    "drupal/views_slideshow": "8.4.*@stable",

- Começámos um novo site drupal em drupal8 e instalámos todos os módulos necessários. Acabámos por definir um novo módulo que instale todos os outros como dependencias já que isso nos permitiu testar a instalação de raiz durante a migração. Podem encontrar o módulo aqui:
    https://github.com/drupalportugal/drupal-pt.org/blob/8.x-dev/docroot/mo…

Também definimos todos os módulos e bibliotecas necessários como parte de um composer.json para que seja fácil actualizar no futuro quando novas versões estejam disponiveis.

- Depois de instalarmos todos os módulos estamos prontos para começar a migrar. Para isso precisamos de instalar os dois módulos de migração que vêm como o core migrate_drupal e migrate_drupal_ui e visitar a configuração da actualização em /upgrade. 
Isto conduz-nos aos ecrãs de configuração da migração onde podemos definir as credenciais de acesso à antiga base de dados drupal6 e escolher quais os tipos de entidades de conteúdo e de configuração a migrar. Conseguimos deste modo migrar automaticamente:

    - Content types
    - Nodes
    - Users
    - Terms
    - Images
    - Menu items

- Encontrámos alguns precalços pelo caminho na migração de dados mas conseguimos resolver os problems relacionados com migrações de utiizadores através da seguinte patch https://www.drupal.org/node/2674152 solved it.

- Depois de migrar dados tivemos de corrigir manualmente items de menu e blocos, criar views de novo e acertar alguns detalhes de construção do site e da sua configuração.

- Em seguida criámos um novo tema, que herda do tema core Bartik, e adaptámos o css para que se enquadre com o design anterior.

- No momento em que estávamos razoavelmente satisfeitos com o resultado, exportámos a configuração para a directoria definida na codebase o que nos permite facilmente actualizar algum item de configuração no futuro.

E voilá! Site está pronto e em produção! Todo o seu código está disponivel em  https://github.com/drupalportugal/drupal-pt.org e pull requests para corrigir problemas ou trazer funcionalidades são mais que bem-vindos!

Utilizamos como referência estes projectos:

Foram feitas algumas atualizações no site:

  • Funcionalidade de Fórum removida por não conter conteúdo e substituída pelo Fórum do groups.drupal.org
  • Correções e melhorias aplicadas na página da Comunidade
  • Bug descoberto nos URLs de perfis de utilizador levou a uma correção temporária não-SEO friendly