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: