Recentemente estive trabalhando na nova versão do site do Sindicato dos Trabalhadores do Poder Judiciário da Paraíba, o que implicou na migração dos dados do web site antigo, feito em Joomla!, para Drupal.

A experiência já rendeu um post aqui, onde detalhei dois módulos que auxiliam na migração dos artigos do Joomla! para nodes do Drupal.

Essa migração de dados foi caminhar em um terreno desconhecido para mim. Nunca precisei migrar conteúdo de nenhum lugar (sempre tinha alguém para fazer este trabalho por mim). Os módulos disponíveis, Joomla e Joomla2Drupal eram respectivamente meus planos A e B. Se ambos falhassem, só restaria o plano C, que seria utilizar o módulo Feeds, assunto deste artigo.

O Feeds não é meramente um migrador de conteúdo. Ele permite alimentar uma instalação Drupal, gerando nodes (possuindo inclusive integração com CCK) e usuários a partir de vários tipos de fontes, como RSS Feed, ATOM e arquivos CSV.

Plus, existem muitos outros parsers disponíveis. Você pode gerar conteúdo através do JSON disponibilizado pela API do Facebook, que tal?

No meu caso em particular, se tudo mais falhasse, eu pretendia exportar a tabela de conteúdo do Joomla! para CSV via PHPMYADMIN, e realizar a importação através do Feeds.

Exportação de uma tabela para CSV pelo PHPMYADMIN

Outro recurso muito interessante do Feeds é que ele permite importar periodicamente o conteúdo via Cron, e se a fonte do conteúdo tiver algum identificador único, ele pode realizar atualizações nos dados já importados, caso a fonte original dos mesmos seja alterada. Na minha cabeça isso abre umas possibilidades interessantes, como alimentar um sistema com dados vindos de uma aplicação Desktop, por exemplo.

Alguns exemplos de importação de Dados com o Feeds

Separei alguns vídeos tutoriais, cortesia do site DevelopmentSeed que demonstram bem como funciona o módulo. Obviamente estão em inglês, mas os vídeos são autoexplicativos, caso você não domine a língua Yankee.

1. Agregar conteúdo via RSS ou ATOM

2. Importando Nodes de um arquivo CSV

3. Importando usuários de um arquivo CSV

Indo além da simples agregação de dados

Às vezes importar os dados não basta, você precisa manipulá-los e modificá-los de alguma forma. Para estas operações, devo dizer que o módulo Feeds Tamper foi um verdadeiro achado. Agradecimentos ao Lullabot pelo artigo sobre ele.

Um caso de uso típico é importar várias palavras separadas por vírgula para um campo CCK multi valorado.

O módulo Feeds Tamper conta com uma grande gama de plugins, que permitem realizar várias operações, entre elas:

  • Substituir todas as ocorrências de 'cachorro' com 'gato'.
  • Filtrar itens com base em palavras-chave ou vocabulários.
  • Transformar cada letra maiúscula em minúsculas ou capitalizar a cada primeira letra.
  • Quebrar uma lista separada por vírgulas de palavras em termos Taxonomia ou um campo de texto de vários valores.
  • Combinar os campos separados 'nome' e 'sobrenome' em um campo 'nome'.
  • Converter urls relativas para absoluta.

E p-p-p-por hoje é só pessoal! Espero que tenham curtido o artigo.

Comentar