Preparazione alla migrazione di phpBB

Ho eseguito diversi passaggi per pulire e preparare i dati prima di spostare il mio forum phpBB 3.x in Discourse. Questo delinea cosa sto facendo per aiutare gli altri a prepararsi per una migrazione. Molti suggerimenti rimuoveranno dati, quindi esegui sempre un backup del database prima di procedere con uno qualsiasi dei suggerimenti seguenti.

Elimina vecchi argomenti e post.

Rivedi le tue categorie e determina se tutti gli argomenti devono essere migrati. Hai bisogno di tutti i dati o saranno sufficienti gli ultimi anni di argomenti? phpBB eliminerà automaticamente gli argomenti in base all’età. Puoi impostare/modificare le date di eliminazione per i tuoi forum nell’ACP di phpBB. Vai su Forum e seleziona il widget a forma di ingranaggio per il forum che desideri modificare.

Elimina vecchi nomi utente.

L’importatore di Discourse non migrerà gli utenti che non hanno postato. Comprendendo questo, puoi rimuovere i vecchi utenti che non hanno mai postato. Vai all’ACP di phpBB e seleziona Utenti e Gruppi. C’è un’opzione per Eliminare Utenti. Puoi impostare i post uguali a 0 e la data dell’ultima attività. Questo ti permetterà di rimuovere tutti gli utenti che non hanno mai postato e che non sono stati attivi sui tuoi forum per un po’ di tempo.

Determina il numero di post di utenti anonimi.

La migrazione di Discourse migrerĂ  gli utenti anonimi come utenti sospesi o tutti in un utente di sistema. Rivedi quanti argomenti/post sono attribuiti a un utente anonimo.
MySQL determinerà lo user_id dell’utente anonimo. Per la maggior parte delle installazioni, questo è user_id = 1.

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

Per controllare argomenti e post. Aggiorna la query con lo user_id dell’utente anonimo del tuo sistema

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

Sulla base di questi risultati, devi determinare come desideri configurare il sistema per gestire i post e gli argomenti degli utenti anonimi. Ne avevo solo pochi e li ho cancellati.

Rivedi post nascosti o eliminati in modo “soft”.

Questa era una funzionalità implementata in phpBB 3.1. Verifica se hai post nascosti o eliminati in modo “soft”. Discourse ignora questo campo e importerà i post. I post sono stati eliminati dall’utente/moderatori per un motivo.

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

Elimina eventuali post elencati.

Valida email pulite.

Esegui lo script MySQL seguente per convalidare le tue email in modo che non abbiano spazi finali e rimuovi eventuali problemi di email identificati.

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

Valida titoli duplicati.

L’impostazione di Discourse ha un flag che consente titoli duplicati. La seguente query ti aiuterà a capire se hai molti titoli duplicati. Il mio forum aveva oltre 1.000 argomenti con titoli duplicati, quindi ho aggiornato il flag per consentire titoli di argomenti duplicati.

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

Trova argomenti orfani.

Ogni argomento dovrebbe avere un post, ma a volte le cose si rompono. Questo elencherĂ  tutti gli argomenti senza post.

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

Pulisci eventuali argomenti orfani.

Trova post orfani.

Ogni post dovrebbe appartenere a un argomento. Questo elencherĂ  i post che non hanno un topic_id valido.

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

Pulisci eventuali post orfani.

Valida che il primo post dell’argomento sia valido

Il primo post di un argomento può essere eliminato, con conseguente argomento con un topic_first_post_id errato. Questo convalida che topic_first_post_id sia valido.

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

Pulisci topic_first_post_id

Aggiungerò elementi aggiuntivi man mano che li troverò preparando una migrazione imminente. Se hai dei controlli consigliati, aggiungili qui sotto.

7 Mi Piace

Grazie mille per la condivisione. Queste sono ottime cose da verificare per ogni migrazione.

Non ricordo bene se possa succedere in phpBB, ma spesso verifichiamo se ci sono email o nomi utente duplicati nella tabella Utenti. Verifichiamo anche se ci sono utenti “staged”, non vorresti migrarli come utenti regolari e validati.

A seconda della versione di phpBB, potresti aggiungere un controllo al codice in modo da non dover eliminare manualmente i post ogni volta.

Anche se, è bene rivedere manualmente i post eliminati. Alcuni amministratori potrebbero volerli conservare (nascosti, a scopo di archiviazione) invece di eliminarli definitivamente.

2 Mi Piace