Les réponses dans le fil s'affichent dans le désordre

Après avoir récemment mis à jour vers la version 2.6.0.beta3, certaines réponses dans divers sujets s’affichent dans le mauvais ordre. Les horodatages sont corrects, mais les réponses concernées apparaissent toujours en bas du sujet.

J’ai essayé de mettre à jour à nouveau et d’exécuter rake posts:reorder_posts sur les sujets concernés, mais cela n’a eu aucun effet. Y a-t-il autre chose que je puisse faire pour qu’elles soient réorganisées correctement ? Ou s’agit-il d’un bug dans Discourse ? Les messages s’affichent de la même manière pour tous les utilisateurs.

Voici un exemple tiré l’un des sujets, c’est le bas du fil de discussion :

Avez-vous par hasard déplacé les deux derniers messages dans ce sujet ? C’est le comportement attendu dans ce cas.

Non, ils étaient toujours dans ce sujet, et avant la mise à niveau, ils étaient dans l’ordre attendu des réponses.

Ce n’est pas seulement dans un seul sujet, mais apparemment dans tous. Il y a une ou deux réponses à la fin qui ne devraient pas l’être.

J’ai eu le même problème.

Non, je ne déplace pas les messages dans le sujet, mais les réponses dans le fil apparaissent dans le désordre.

L’exécution de la requête depuis posts:reorder_posts montre que le sort_order de plusieurs publications est incorrect. Il semble que la tâche rake devrait les mettre à jour, mais ce n’est pas le cas.


Suite à l’exécution de :

SELECT
id,
post_number,
sort_order,
ROW_NUMBER() OVER (
    PARTITION BY
    topic_id
    ORDER BY
    created_at,
    post_number
) AS new_post_number
FROM
posts

En essayant de recréer manuellement la tâche rake, j’ai exécuté :

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

ce qui a donné :

Cela explique pourquoi la tâche rake ne fait rien : elle pense qu’il n’y a rien à faire… La tâche rake inclut une condition where supplémentaire comparant post_number à new_post_number, et non sort_order.

J’ai maintenant exécuté manuellement la commande suivante sur la base de données :

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

Les messages s’affichent désormais dans le bon ordre.

Je ne comprends toujours pas comment vous en êtes arrivé à cet état ; la seule fois où nous modifions cela, c’est lorsque vous déplacez des messages.

Le créateur de message définit simplement sort_order sur post_number

À long terme, je ne suis même pas sûr de vouloir conserver la colonne sort_order, car elle semble être une sorte de piège.

Y a-t-il des plugins impliqués ici ?

Je ne comprends pas non plus ; je n’ai trouvé aucune raison en examinant le code. Quelque chose semble modifier l’ordre de tri, mais je ne vois pas quoi.

J’ai pensé qu’ils étaient sortis de l’ordre lorsque j’ai effectué une mise à niveau, car les messages désordonnés étaient généralement beaucoup plus anciens et apparaissaient précédemment à un endroit attendu. Lorsque j’ai exécuté le SQL ci-dessus, tout semblait correct, mais la semaine dernière, quelques tout nouveaux messages sont également apparus dans le désordre. Je pense que les messages concernés sont toujours des réponses à un autre message. Par exemple :

Nous avons les plugins suivants installés :

Je suppose que le plugin question-réponse modifie l’ordre de tri, mais cela ne devrait affecter que les sujets de type question, pas les autres.

Je rencontre le même problème. J’ai déjà eu des erreurs 502 lors du déplacement de messages en raison de sujets longs, je ne sais pas si cela a un rapport. J’ai également installé le plugin Questions-Réponses, mais je vois toujours des messages apparaître en bas des sujets même après l’avoir désactivé.

Très probablement, ce n’est pas vraiment un plugin pris en charge ou officiel ; l’ordre de tri n’est utilisé que de manière incohérente dans le noyau de Discourse, et nous envisageons de supprimer cette colonne.

Je déplace cela vers Support car je considère cela comme un bug dans un plugin non officiel.

@angus Peux-tu jeter un œil à ce problème ? J’ai installé ce plugin et les réponses ont commencé à apparaître dans le désordre sur l’ensemble du site. Je viens de désinstaller le plugin, mais les réponses apparaissent toujours dans le désordre.

J’ai effectué un test sur un seul message pour vérifier si la commande suivante corrigerait les réponses désordonnées dans un message unique (après avoir supprimé le plugin Q&R).

rake posts:reorder_posts[1896]

Malheureusement, les messages apparaissent toujours dans le désordre.

Salut, désolé que tu aies rencontré ce problème. Merci de poster toute mise à jour à ce sujet sur Question Answer Plugin. @mbcahyono ou moi-même te répondrons sous peu. Il ne s’agit pas d’une question générale de support Discourse.