200만 개의 개인 메시지를 가져왔는데, Vanilla에서 가져온 메시지를 보내기에서 받은 편지함으로 옮기는 방법은 무엇인가요?
일반적으로 받은편지함(Inbox)에는 다음 중 하나에 해당하는 개인 메시지만 표시됩니다:
- 다른 사람이 보낸 개인 메시지를 받은 경우.
- 내가 보낸 개인 메시지에 누군가 답글을 쓴 경우.
다른 게시판에서 가져오는 과정에서, 2번 항목에 해당하는 개인 메시지는 주제(topic)에 답글이 있더라도 받은편지함에 올바르게 표시되지 않는다는 점을 발견했습니다. 이는 받은편지함 조회 쿼리의 조건이 주제의 participant_count 필드와 관련되어 있기 때문으로 보입니다. 가져오기(importer)가 이 필드를 올바르게 업데이트하지 않아 기본적으로 1로 설정됩니다. participant_count가 1이면, 해당 주제는 받은편지함 보기에서 반환되지 않습니다.
이를 수정하려면 가져오기에 개인 메시지의 참여자 수를 포함하도록 조정하거나, 가져오기 완료 후 참여자 수를 업데이트해야 합니다. 후자의 경우, rails 콘솔에서 다음을 실행하면 됩니다:
Topic.private_messages.map(&:update_statistics)
자세한 내용은 다음 링크를 참고하세요:
간, 고마워! 대화에 두 명의 사용자를 모두 표시하는 데 성공했어.