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 :
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.
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
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 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 :
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.