Удаление старых тем и сообщений.
Проверьте свои категории и определите, нужно ли мигрировать все темы. Нужны ли вам все данные или достаточно тем за последние несколько лет? phpBB автоматически удаляет темы по возрасту. Вы можете настроить или изменить даты удаления для своих форумов в панели администратора phpBB (ACP). Перейдите в раздел «Форумы» и выберите значок шестеренки для форума, который вы хотите изменить.
Удаление старых имен пользователей.
Импортер Discourse не переносит пользователей, которые не публиковали сообщения. Понимая это, вы можете удалить старых пользователей, которые никогда не писали. Перейдите в панель администратора phpBB и выберите «Пользователи и группы». Там есть опция «Очистка пользователей». Вы можете установить количество сообщений равным 0 и указать дату последнего посещения. Это позволит удалить всех пользователей, которые никогда не публиковали сообщения и не были активны на вашем форуме в течение определенного времени.
Определение количества сообщений от анонимных пользователей.
При миграции в Discourse анонимные пользователи будут перенесены как заблокированные пользователи или все они будут объединены в системного пользователя. Проверьте, сколько тем и сообщений приписано анонимному пользователю.
MySQL определяет user_id анонимного пользователя. Для большинства установок это user_id = 1.
SELECT `user_id`, `username` FROM `phpbb_users` where `username_clean` = "anonymous"
Для проверки тем и сообщений обновите запрос, используя user_id вашего системного анонимного пользователя:
SELECT * FROM `phpbb_posts` where `poster_id` = "1"
SELECT * FROM `phpbb_topics` where `topic_poster` = "1"
Исходя из этих результатов, вы должны решить, как настроить систему для обработки сообщений и тем анонимных пользователей. У меня их было немного, и я их удалил.
Проверка скрытых или мягко удаленных сообщений.
Эта функция была реализована в phpBB 3.1. Проверьте, есть ли у вас скрытые или мягко удаленные сообщения. Discourse игнорирует это поле и импортирует сообщения. Сообщения были удалены пользователем или модераторами по определенной причине.
SELECT * FROM `phpbb_posts` where `poster_visibility` = "2"
Удалите все перечисленные сообщения.
Проверка корректности адресов электронной почты.
Пожалуйста, выполните следующий MySQL-скрипт для проверки адресов электронной почты, чтобы убедиться, что в них нет лишних пробелов в конце, и устраните все выявленные проблемы.
SELECT `user_email` FROM `phpbb_users` where CHAR_LENGTH(`user_email`) != CHAR_LENGTH(TRIM(`user_email`)) ORDER BY `user_id` ASC
Проверка дубликатов заголовков.
В настройках Discourse есть флаг, разрешающий дубликаты заголовков. Следующий запрос поможет вам понять, есть ли у вас много дубликатов заголовков. На моем форуме было более 1000 тем с одинаковыми заголовками, поэтому я изменил флаг, чтобы разрешить дубликаты заголовков тем.
SELECT `topic_title`, COUNT(*) as count FROM `phpbb_topics` GROUP BY `topic_title` HAVING COUNT(*) > 1 ORDER BY `count` DESC
Поиск сиротских тем.
Каждая тема должна иметь хотя бы одно сообщение, но иногда что-то идет не так. Этот запрос покажет все темы без сообщений.
SELECT * FROM `phpbb_topics` WHERE `topic_id` NOT IN (Select topic_id from phpbb_posts) ORDER BY `topic_approved` DESC
Очистите все сиротские темы.
Поиск сиротских сообщений.
Каждое сообщение должно принадлежать какой-либо теме. Этот запрос покажет сообщения, у которых нет корректного topic_id.
SELECT * FROM `phpbb_posts` WHERE `topic_id` NOT IN (Select topic_id from phpbb_topics) ORDER BY `post_id` DESC
Очистите все сиротские сообщения.
Проверка первого сообщения темы на корректность
Первое сообщение темы может быть удалено, что приведет к тому, что у темы будет неверный topic_first_post_id. Этот запрос проверяет, что topic_first_post_id корректен.
SELECT * FROM `phpbb_topics` WHERE `topic_first_post_id` NOT IN (Select post_id from phpbb_posts) ORDER BY `topic_approved` DESC
Исправьте topic_first_post_id для первых сообщений тем.
Я буду добавлять дополнительные пункты по мере их обнаружения в ходе подготовки к предстоящей миграции. Если у вас есть рекомендуемые проверки, пожалуйста, добавьте их ниже.