오래된 주제와 게시글 정리.
카테고리를 검토하여 모든 주제를 이전해야 하는지 결정하십시오. 모든 데이터가 필요한가요, 아니면 최근 몇 년간의 주제만으로도 충분한가요? phpBB는 주제 나이에 따라 자동으로 주제를 정리(Prune)합니다. phpBB ACP에서 포럼의 정리(Prune) 날짜를 설정하거나 조정할 수 있습니다. 포럼(Forums)으로 이동하여 수정하려는 포럼의 기어 위젯을 선택하십시오.
오래된 사용자 이름 정리.
Discourse 가져오기(importer)는 게시글을 작성하지 않은 사용자를 이전하지 않습니다. 이를 고려하여, 게시글을 작성한 적이 없는 오래된 사용자를 삭제할 수 있습니다. phpBB ACP로 이동하여 사용자 및 그룹(Users and Groups)을 선택하십시오. 사용자 정리(Prune Users) 옵션이 있습니다. 게시글 수를 0으로, 마지막 활동 날짜를 설정할 수 있습니다. 이를 통해 게시글을 작성한 적이 없고 포럼에서 오랫동안 활동하지 않은 모든 사용자를 삭제할 수 있습니다.
익명 사용자 게시글 수 확인.
Discourse 이전 시 익명 사용자는 정지된 사용자(suspended users)로 또는 모두 시스템 사용자(system user)로 이전됩니다. 익명 사용자에게 귀속된 주제/게시글이 얼마나 되는지 검토하십시오.
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 설정에는 중복 제목을 허용하는 플래그가 있습니다. 다음 쿼리는 중복 제목이 얼마나 많은지 이해하는 데 도움이 됩니다. 제 포럼에는 중복 제목이 있는 주제가 1,000개 이상이었으므로, 중복 주제 제목을 허용하도록 플래그를 업데이트했습니다.
SELECT `topic_title`, COUNT(*) as count FROM `phpbb_topics` GROUP BY `topic_title` HAVING COUNT(*) > 1 ORDER BY `count` DESC
고아(Orphan) 주제 찾기.
모든 주제는 게시글을 가져야 하지만, 가끔 문제가 발생할 수 있습니다. 이 쿼리는 게시글이 없는 모든 주제를 나열합니다.
SELECT * FROM `phpbb_topics` WHERE `topic_id` NOT IN (Select topic_id from phpbb_posts) ORDER BY `topic_approved` DESC
고아 주제를 정리하십시오.
고아(Orphan) 게시글 찾기.
모든 게시글은 주제에 속해야 합니다. 이 쿼리는 유효한 topic_id가 없는 게시글을 나열합니다.
SELECT * FROM `phpbb_posts` WHERE `topic_id` NOT IN (Select topic_id from phpbb_topics) ORDER BY `post_id` DESC
고아 게시글을 정리하십시오.
첫 번째 주제 게시글이 유효한 게시글인지 검증
주제의 첫 번째 게시글은 삭제될 수 있으며, 이로 인해 잘못된 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
첫 번째 주제 post_id를 정리하십시오.
다가오는 이전을 준비하면서 더 많은 항목을 찾으면 추가하겠습니다. 권장되는 체크 항목이 있다면 아래에 추가해 주십시오.