Preparação para Migração do phpBB

Tomei várias medidas para limpar e preparar os dados antes de mover meu fórum phpBB 3.x para o Discourse. Isso descreve o que estou fazendo para ajudar outras pessoas a se prepararem para uma migração. Muitas sugestões removerão dados, portanto, sempre faça um backup do banco de dados antes de prosseguir com qualquer uma das sugestões abaixo.

Purgar tópicos e postagens antigas.

Revise suas categorias e determine se todos os tópicos precisam ser migrados. Você precisa de todos os dados ou os últimos anos de tópicos serão suficientes? O phpBB purgará automaticamente os tópicos com base na idade. Você pode configurar/ajustar as datas de purga para seus fóruns no ACP do phpBB. Vá para Fóruns e selecione o widget de engrenagem para o fórum que deseja modificar.

Purgar nomes de usuário antigos.

O importador do Discourse não migrará usuários que não postaram. Entendendo isso, você pode remover usuários antigos que nunca postaram. Vá para o ACP do phpBB e selecione Usuários e Grupos. Há uma opção para Purgar Usuários. Você pode definir as postagens como 0 e a data da última atividade. Isso permitirá que você remova todos os usuários que nunca postaram e não estiveram ativos em seus fóruns por algum tempo.

Determinar o número de postagens de usuários anônimos.

A migração do Discourse migrará usuários anônimos como usuários suspensos ou todos para um usuário do sistema. Revise quantos tópicos/postagens são atribuídos a um usuário anônimo.
O MySQL determinará o user_id do usuário anônimo. Para a maioria das instalações, este é o user_id = 1.

SELECT `user_id`, `username` FROM `phpbb_users` where `username_clean` = "anonymous"

Para verificar tópicos e postagens. Atualize a consulta com o user_id anônimo do seu sistema

SELECT * FROM `phpbb_posts` where `poster_id` = "1"
SELECT * FROM `phpbb_topics` where `topic_poster` = "1"

Com base nesses resultados, você precisa determinar como deseja configurar o sistema para lidar com postagens e tópicos de usuários anônimos. Eu tinha apenas alguns e os excluí.

Revisar postagens ocultas ou excluídas logicamente.

Este foi um recurso implementado no phpBB 3.1. Valide se você tem alguma postagem oculta ou excluída logicamente. O Discourse ignora este campo e importará as postagens. As postagens foram excluídas pelo usuário/mods por um motivo.

SELECT * FROM `phpbb_posts` where `poster_visibility` = "2"

Exclua quaisquer postagens que estejam listadas.

Validar e-mails limpos.

Execute o seguinte script MySQL para validar seus e-mails para que eles não tenham espaços no final e remova quaisquer problemas de e-mail identificados.

SELECT `user_email` FROM `phpbb_users` where CHAR_LENGTH(`user_email`) != CHAR_LENGTH(TRIM(`user_email`)) ORDER BY `user_id` ASC

Validar Títulos Duplicados.

A configuração do Discourse tem uma opção que permite títulos duplicados. A seguinte consulta o ajudará a entender se você tem muitos títulos duplicados. Meu fórum tinha mais de 1.000 tópicos com títulos duplicados, então atualizei a opção para permitir títulos de tópicos duplicados.

SELECT `topic_title`, COUNT(*) as count FROM `phpbb_topics` GROUP BY `topic_title` HAVING COUNT(*) > 1 ORDER BY `count` DESC

Encontrar Tópicos Órfãos.

Todo tópico deve ter uma postagem, mas às vezes as coisas quebram. Isso listará todos os tópicos sem postagens.

SELECT * FROM `phpbb_topics` WHERE `topic_id` NOT IN (Select topic_id from phpbb_posts) ORDER BY `topic_approved` DESC

Limpe quaisquer tópicos órfãos.

Encontrar Postagens Órfãs.

Toda postagem deve pertencer a um tópico. Isso listará postagens que não têm um topic_id válido.

SELECT * FROM `phpbb_posts` WHERE `topic_id` NOT IN (Select topic_id from phpbb_topics) ORDER BY `post_id` DESC

Limpe quaisquer postagens órfãs.

Validar se a primeira postagem do tópico é válida

A primeira postagem de um tópico pode ser excluída, resultando em um tópico com um first_post_id incorreto. Isso valida se o topic_first_post_id é válido.

SELECT * FROM `phpbb_topics` WHERE `topic_first_post_id` NOT IN (Select post_id from phpbb_posts) ORDER BY `topic_approved` DESC

Limpe o first_post_id do tópico

Adicionarei itens adicionais conforme os encontrar na preparação para uma migração futura. Se você tiver alguma verificação recomendada, adicione-a abaixo.

7 curtidas

Muito obrigado por compartilhar. Estas são ótimas coisas para verificar em cada migração.

Não me lembro bem se isso pode acontecer no phpBB, mas frequentemente verificamos se há e-mails ou nomes de usuário duplicados na tabela Users. Também verificamos se há usuários em estágio, você não vai querer migrá-los como usuários regulares e validados.

Dependendo da versão do phpBB, você pode adicionar uma verificação ao código para não ter que excluir manualmente as postagens toda vez.

Embora seja bom revisar manualmente as postagens excluídas. Alguns administradores podem querer mantê-las (ocultas, para fins de arquivamento) em vez de excluí-las permanentemente.

2 curtidas