Vorbereitung der phpBB-Migration

Ich habe mehrere Schritte unternommen, um die Daten zu bereinigen und vorzubereiten, bevor ich mein phpBB 3.x Forum nach Discourse verschoben habe. Dies beschreibt, was ich tue, um anderen bei der Vorbereitung auf eine Migration zu helfen. Viele Vorschläge entfernen Daten, daher sollten Sie immer ein Datenbank-Backup erstellen, bevor Sie mit einem der unten genannten Vorschläge fortfahren.

Alte Themen und Beiträge löschen.

Überprüfen Sie Ihre Kategorien und entscheiden Sie, ob alle Themen migriert werden müssen. Benötigen Sie alle Daten oder reichen die Themen der letzten Jahre aus? phpBB löscht Themen automatisch nach Alter. Sie können die Löschdaten für Ihre Foren im phpBB ACP einrichten/anpassen. Gehen Sie zu Foren und wählen Sie das Zahnrad-Widget für das Forum aus, das Sie ändern möchten.

Alte Benutzernamen löschen.

Der Discourse-Importer migriert keine Benutzer, die nicht gepostet haben. In diesem Sinne können Sie alte Benutzer entfernen, die nie gepostet haben. Gehen Sie zum phpBB ACP und wählen Sie Benutzer und Gruppen. Es gibt eine Option zum Löschen von Benutzern. Sie können die Beiträge auf 0 setzen und das letzte aktive Datum. Dies ermöglicht es Ihnen, alle Benutzer zu entfernen, die nie gepostet haben und seit einiger Zeit in Ihren Foren nicht mehr aktiv waren.

Anzahl der anonymen Benutzerbeiträge ermitteln.

Die Discourse-Migration migriert anonyme Benutzer als gesperrte Benutzer oder alle zu einem Systembenutzer. Überprüfen Sie, wie viele Themen/Beiträge einem anonymen Benutzer zugeordnet sind.
MySQL ermittelt die user_id des anonymen Benutzers. Für die meisten Installationen ist dies user_id = 1.

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

Um Themen und Beiträge zu überprüfen. Aktualisieren Sie die Abfrage mit der anonymen user_id Ihres Systems.

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

Basierend auf diesen Ergebnissen müssen Sie entscheiden, wie Sie das System konfigurieren möchten, um anonyme Benutzerbeiträge und -themen zu verarbeiten. Ich hatte nur wenige und habe sie gelöscht.

Versteckte oder weich gelöschte Beiträge überprüfen.

Dies war eine Funktion, die in phpBB 3.1 implementiert wurde. Überprüfen Sie, ob Sie versteckte oder weich gelöschte Beiträge haben. Discourse ignoriert dieses Feld und importiert die Beiträge. Die Beiträge wurden aus einem bestimmten Grund vom Benutzer/Moderatoren gelöscht.

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

Löschen Sie alle aufgeführten Beiträge.

E-Mails bereinigen validieren.

Führen Sie das folgende MySQL-Skript aus, um Ihre E-Mails zu validieren, damit sie keine Leerzeichen am Ende haben, und entfernen Sie alle identifizierten E-Mail-Probleme.

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

Doppelte Titel validieren.

Die Discourse-Einstellung hat eine Option, die doppelte Titel zulässt. Die folgende Abfrage hilft Ihnen zu verstehen, ob Sie viele doppelte Titel haben. Mein Forum hatte über 1.000 Themen mit doppelten Titeln, daher habe ich die Option so geändert, dass doppelte Thema-Titel zugelassen werden.

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

Verwaiste Themen finden.

Jedes Thema sollte einen Beitrag haben, aber manchmal gehen Dinge kaputt. Dies listet alle Themen ohne Beiträge auf.

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

Bereinigen Sie alle verwaisten Themen.

Verwaiste Beiträge finden.

Jeder Beitrag sollte zu einem Thema gehören. Dies listet Beiträge auf, die keine gültige topic_id haben.

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

Bereinigen Sie alle verwaisten Beiträge.

Sicherstellen, dass der erste Thema-Beitrag gültig ist

Der erste Beitrag eines Themas kann gelöscht werden, was zu einem Thema mit einer falschen first_post_id führt. Dies validiert, dass die topic_first_post_id gültig ist.

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

Bereinigen Sie die first_topic_post_id.

Ich werde weitere Punkte hinzufügen, sobald ich sie bei der Vorbereitung auf eine bevorstehende Migration finde. Wenn Sie Empfehlungen für Prüfungen haben, fügen Sie diese bitte unten hinzu.

7 „Gefällt mir“

Vielen Dank für das Teilen. Dies sind sehr gute Dinge, die bei jeder Migration überprüft werden sollten.

Ich erinnere mich nicht genau, ob das in phpBB passieren kann, aber wir prüfen oft, ob es doppelte E-Mails oder Benutzernamen in der Benutzertabelle gibt. Wir prüfen auch, ob es gestufte Benutzer gibt, die Sie nicht als reguläre, validierte Benutzer migrieren möchten.

Abhängig von der phpBB-Version könnten Sie eine Prüfung zum Code hinzufügen, damit Sie die Beiträge nicht jedes Mal manuell löschen müssen.

Obwohl es gut ist, die gelöschten Beiträge manuell zu überprüfen. Einige Administratoren möchten sie möglicherweise (versteckt, zu Archivierungszwecken) behalten, anstatt sie dauerhaft zu löschen.

2 „Gefällt mir“