Este mês, tive um dos maiores desafios desde que entrei para o mundo do blogging: Migrar de um CMS para outro, mais concretamente, do Xoops para WordPress. Pode não parecer um grande desafio para alguns, mas depois de ler este artigo poderão perceber do que falo, e das coisas por que passei. Já migrei de HTML para Blogger, de Blogger para WordPress, e do Blogger para Xoops, mas desta vez, foi mesmo um grande trabalho.
A primeira alternativa para uma migração de um Sistema de gerenciamento de conteúdos para outro pode ser a cópia directa de cada artigo manualmente, mas esta não era a solução certa para um portal como Techmoz, que já está com centenas de artigos publicados. Então, tive de ir ao Google, perguntar por um plugin ou qualquer coisa que me ajudasse na mudança. Google me direccionou para um blog que falava exactamente sobre este assunto.
Então qual foi o problema, se a solução foi encontrada??
O problema é que o post foi publicado há muito tempo, e o Xoops e o WordPress, principalmente o WordPress, já passaram por muitas mudanças, logo, aquele blog me deu uma luz, mas não foi exactamente a solução completa…. Tive de fazer umas modificações.Vou deixar aqui uma espécie de guia, para que próximos nómados que quiserem mudar de Xoops para WordPress tenham uma fonte de referência.
1. Analisando a estrutura do banco de dados
O maior problema da troca de CMS é que cada sistema usa a sua própria estrutura de Banco de Dados, e a transferência directa é quase impossível. Quando se trata de Xoops então a situação é mais grave. Tão grave que só tive a paciência de transferir os artigos, logo os meus downloads ficaram praticamente perdidos.
Xoops usa uma estrutura diferente para cada módulo, logo a dica deste artigo é apenas válida para o módulo news, que é um dos módulos mais usado no Xoops. Se por acaso quiser usar com outro módulo, terá que fazer algumas alterações.
A análise que é necessário fazer, tem a ver com a forma como os dados são armazenados na tabela do banco de dados. Temos de fazer um mapeamento dos dados do Xoops em relação as tabelas do WordPress. Isto você fará a partir do PHPMyAdmin, ou outro gestor de banco de dados MySQL que estiver a usar. Veja o exemplo abaixo:
Xoops | WordPress |
---|---|
title | post_title |
storyid | ID |
post_author = 1 | |
post_category = 0 | |
post_status = publish | |
comment_status = open | |
ping_status = open | |
hometext | post_excerpt |
bodytext | post_content |
FROM_UNIXTIME(post_date) | post_date |
FROM_UNIXTIME(published+43200) | post_date_gmt |
FROM_UNIXTIME(post_date) | post_modified |
FROM_UNIXTIME(published+43200) | post_modified_gmt |
storyid | post_name |
Criando o script de migração do Xoops para WordPress
Depois de fazer o mapeamento, terá de criar um script que exporte dados do do Banco de dados do Xoops para depois importar no WordPress. O blog http://www.cre8d-design.com, donde eu tirei a base deste tutorial, já tem um script, mas provavelmente só funcione com versões antigas do WordPress, pois comigo deu alguns erros. Actualizei o script, e estou disponibilizando aqui para que possa usar sem muito esforço:
SELECT storyid AS ID, 1 AS post_author, FROM_UNIXTIME( published ) AS post_date, FROM_UNIXTIME( published +43200 ) AS post_date_gmt, bodytext AS post_content, title AS post_title, hometext AS post_excerpt, 'publish' AS post_status, 'open' AS comment_status, 'open' AS ping_status, '' AS post_password, storyid AS post_name, '' AS to_ping, '' AS pinged, FROM_UNIXTIME( published ) AS post_modified, FROM_UNIXTIME( published +43200 ) AS post_modified_gmt, '' AS post_content_filtered, "" AS post_parent, '' AS guid, '' AS menu_order, "" AS post_type, '' AS post_mime_type, 0 AS comment_count FROM `xoops_stories`
Alguns detalhes em relação a este script:
- As datas foram convertidas do formato do Xoops para WordPress. Os dois CMSs usam sistemas diferentes de manipulação de datas
- Os comentários em Pings foram abertos para todos os posts importados. Você pode mudar isso, colocando closed, onde vem open para comment e ping, neste script, mas eu prefiro deixar open, pois depois posso fechar usando um plugin WordPress.
- Comentários do Xoops não serão importados, e você terá que ir criar os usuários novos no WordPress, e fazer um novo mapeamento com os usuários que existiam no Xoops. Isto não será necessário se você tinha apenas um usuário no Xoops, como foi no meu caso.
Agora é só executar este script no Banco de dados do seu site Xoops, para ele gerar o resultado. Exporte o resultado no formato sql, e depois vá importar o ficheiro exportado no seu banco de dados Xoops. Talvez tenha de mudar o nome da tabela manualmente no ficheiro de importação, e alguns campos também.
Assim terá o seu site transferido para WordPress. Há vários motivos para fazer isso, e caso tenha algum, deixe nos comentários. O próximo passo é garantir que não perca nenhum tráfego do seu site, usando os redireccionamentos 301. Explicarei este processo num próximo artigo. Tenha a certeza de ser alertado quando isto acontecer, subscrevendo ao nosso RSS Feed, na lateral deste blog.
Comentários Recentes