최근 2.6.0.beta3로 업데이트한 후, 여러 스레드에서 일부 답글이 잘못된 순서로 표시되고 있습니다. 타임스탬프는 올바르게 표시되지만, 문제가 있는 답글은 항상 스레드 하단에 위치해 있습니다.
다시 업데이트를 시도하고, 해당 주제에 대해 rake posts:reorder_posts를 실행해 보았지만 효과가 없었습니다. 순서가 올바르게 정렬되도록 할 수 있는 다른 방법이 있을까요? 아니면 이는 discourse의 버그인가요? 모든 사용자에게 게시물이 동일하게 표시됩니다.
WITH ordered_posts AS (
SELECT
id,
ROW_NUMBER() OVER (
PARTITION BY
topic_id
ORDER BY
created_at,
post_number
) AS new_post_number
FROM
posts
/*where*/
)
SELECT
p.post_number,
p.sort_order,
o.new_post_number
FROM
posts AS p, ordered_posts AS o
WHERE
p.id = o.id
이는 rake 작업이 아무것도 하지 않는 이유를 보여줍니다. 작업은 할 일이 없다고 판단하고 있기 때문입니다… rake 작업에는 post_number와 new_post_number를 비교하는 추가적인 where 조건이 있으며, sort_order를 비교하지 않습니다.
이제 다음과 같은 쿼리를 데이터베이스에서 수동으로 실행했습니다:
WITH ordered_posts AS (
SELECT
id,
ROW_NUMBER() OVER (
PARTITION BY
topic_id
ORDER BY
created_at,
post_number
) AS new_post_number
FROM
posts
/*where*/
)
UPDATE
posts AS p
SET
sort_order = o.new_post_number
FROM
ordered_posts AS o
WHERE
p.id = o.id AND
p.sort_order <> o.new_post_number
나도 그 이유를 모르겠어요. 코드를 살펴봐도 그럴 만한 원인을 찾지 못했습니다. 정렬 순서를 무언가 수정하는 것 같지만, 그게 뭔지는 보이지 않네요.
업그레이드를 실행했을 때 순서가 어긋난 줄 알았어요. 순서가 어긋난 메시지들은 대체로 훨씬 오래된 것이었고, 이전에는 예상된 위치에 있었거든요. 위에서 언급한 SQL을 실행했을 때는 모든 것이 정상으로 보였는데, 지난주에는 완전히 새로 작성된 게시물 두 개도 순서 없이 나타났습니다. 영향을 받는 게시물들은 항상 다른 게시물에 대한 답글인 것 같아요. 예를 들면:
저도 같은 문제를 겪고 있습니다. 긴 주제 때문에 게시글을 이동할 때 이전에 502 오류가 발생했던 적이 있는데, 이것이 관련이 있는지 확실하지 않습니다. 또한 질문-답변 플러그인을 설치해 두었지만, 플러그인을 비활성화한 후에도 여전히 주제 하단에 게시글이 표시되고 있습니다.