큰 규모의 오래된 메일링 리스트를 Discourse에 가져온 후, 처음에는 부모 스레드의 일부로 제대로 식별되지 않았던 여러 스레드를 병합하면서 스레드 순서가 어긋나 있는 것을 발견했습니다. 이전 날짜의 스레드 메시지가 더 이른 날짜를 가진 부모 스레드보다 뒤에 표시되는 경우가 많습니다.
스레드가 날짜 순서대로(가장 오래된 원본 게시글부터 가장 새로운 것까지) 정렬되도록 재정렬하는 방법이 있을까요?
큰 규모의 오래된 메일링 리스트를 Discourse에 가져온 후, 처음에는 부모 스레드의 일부로 제대로 식별되지 않았던 여러 스레드를 병합하면서 스레드 순서가 어긋나 있는 것을 발견했습니다. 이전 날짜의 스레드 메시지가 더 이른 날짜를 가진 부모 스레드보다 뒤에 표시되는 경우가 많습니다.
스레드가 날짜 순서대로(가장 오래된 원본 게시글부터 가장 새로운 것까지) 정렬되도록 재정렬하는 방법이 있을까요?
아니요. 문제는 게시물이 게시물 ID 순서로 정렬된다는 것입니다. 그리고 말씀하신 대로, 게시물이 생성되었어야 할 순서와 다른 순서로 가져왔습니다. 적절한 해결책은 게시물이 올바른 순서로 가져와지도록 가져오기 과정을 수정하는 것뿐인 것 같습니다. 다만, 데이터베이스를 초기화하고 가져오기 스크립트를 다시 실행하기만 하면 될 것 같습니다.
(또는 다른 "해결책"으로는 게시물 순서를 신경 쓰지 않는 것이 있습니다. 어차피 아무도 읽지 않을 오래된 게시물들이니까요. 또는 각 주제별로 기존 게시물을 모두 삭제하고 올바른 순서로 다시 생성하는 방법을 강구할 수도 있습니다.)
음, 이 기능은 이미 꽤 오래전부터 적용되어 있었어요. 삭제 후 다시 가져오는 것이 적절한 해결책이라고는 정말로 생각하지 않아요. 게시글 ID를 다시 정렬할 수 있도록 플러그인을 만들 수 있을지 궁금하네요… 음.
아,那可真是遗憾呢。무엇이든 가능할 수는 있겠지만, 그렇게 하면 사이트 전체의 성능에 영구적으로 영향을 미칠 거예요.
그 주제들과 관련 사용자 정의 필드를 삭제한 뒤 스크립트를 다시 실행하는 것도 생각해 볼 수 있습니다. 단, 실데이터에 적용하기 전에 반드시 스테이징 사이트에서 매우 신중하게 테스트해 보시길 권해 드립니다.
포스트 ID가 재배열된다고 해서 영구적인 영향을 미칠 거라고는 생각하지 않습니다. 쿼리 시 스레드를 날짜순으로 정렬해 주는 플러그인을 사용하는 것도 하나의 대안이 될 수 있겠죠…
맞습니다. 게시물을 모두 삭제한 뒤 올바른 순서로 다시 생성하면 문제없이 해결됩니다.