Migrando Drupal 6 para o Drupal 8

O processo de migração do Drupal 6 ou 7 para o Drupal 8 está mais fácil do que você imagina.

Neste tutorial, vou mostrar como fazer a migração de um site no Drupal 6 para o Drupal 8, importando seus usuários, regras de usuários, tags, arquivos e tipo de conteúdo.

A migração pode ser feita de diversas formas: via json, xml ou por consulta direta no banco de dados.

No meu exemplo, vou fazer uma consulta direta no banco de dados do Drupal 6, retornando o conteúdo desejado para a migração.

Para ter acesso ao banco de dados do Drupal 6, adicione no settings.php do seu Drupal 8, suas credencias. Ex.:

$databases['migrate']['default'] = array (
 // The database that contains the source data we're going to import.
 'database' => 'database_name_drupal_6',
 'username' => 'user_drupal_6',
 'password' => 'pass_drupal_6',
 'prefix' => '',
 'host' => 'localhost',
 'port' => '3306',
 'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
 'driver' => 'mysql',
);
Faça o download dos seguintes módulos:

drush dl migrate_plus migrate_tools

O módulo migrate_plus estende o framework padrão do Migrate, adicionando mais funcionalidades, exemplos e documentações.
Com o módulo migrate_tools  é possível gerenciar sua migração mais fácil, adicionando comandos drush como: migrate-status, migrate-import, migrate-rollback, migrate-stop, etc.

Agora, habilite os seguintes módulos:

drush en migrate migrate_drupal migrate_plus migrate_tools

Para esse tutorial não ficar muito extenso, vou deixar aqui o módulo custom que eu criei com alguns exemplos simples de migração.

Repare que o mapeamento dos campos são feitos no arquivo ".yml", localizado em "config/install". 
Alguns campos como o de "roles" presente no arquivo "migrate_plus.migration.custom_user.yml", faz referência à migração do "custom_user_role", ou seja, primeiro você deve rodar a migração de "custom_user_role" e depois, a de "custom_user". O mesmo no caso da migração de páginas, onde antes você deve rodar a migração de arquivos e tags.

Migration Templates

Os Migration templates são classes que possuem um mapeamento pré-formatado das tabelas e campos. Exemplo:

Se você deseja migrar um Node (Drupal 6 ou 7), você não precisa se preocupar em mapear os campos default de um Node. Basta estender a classe "Node" da versão Drupal desejada.

Você pode encontrar os templates de migração dentro dos módulos do core, como: Node, File, Image,  Taxonomy, User, etc.


 
No começo, pode parecer complexo, mas utilizando os templates de migração, você vai conseguir criar seus scripts de migração de forma rápida e fácil.

Para iniciar sua migração, habilite o seu módulo migrate_custom e execute:

drush mi <migration id>

Exemplo:
drush mi custom_user_role

Para saber os comandos via drush disponíveis, consulte o README.txt do migrate_tools.

Baixe o módulo migrate_custom! 

Espero que tenha ajudado. 

Até o próximo tutorial!

Login do usuário