Nach dem kürzlichen Update auf 2.6.0.beta3 werden einige Antworten in verschiedenen Threads in der falschen Reihenfolge angezeigt. Die Zeitstempel sind zwar korrekt, aber die betroffenen Antworten stehen immer am Ende des Threads.
Ich habe versucht, erneut zu aktualisieren und rake posts:reorder_posts für die betroffenen Themen auszuführen, aber dies hatte keine Wirkung. Gibt es sonst noch etwas, das ich tun kann, um sie korrekt neu zu sortieren? Oder handelt es sich hierbei um einen Fehler in Discourse? Die Beiträge werden für alle Benutzer gleich angezeigt.
Ein Beispiel aus einem der Themen, dies ist das Ende des Threads:
Das Ausführen der Abfrage aus posts:reorder_posts zeigt, dass die sort_order für eine Reihe von Beiträgen seltsam ist. Es sieht so aus, als ob der Rake-Task sie aktualisieren sollte, tut es aber nicht.
Beim Versuch, die Rake-Aufgabe manuell nachzubilden, habe ich Folgendes ausgeführt:
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
Dies zeigt, warum die Rake-Aufgabe nichts bewirkt – sie geht davon aus, dass nichts zu tun ist… Die Rake-Aufgabe enthält eine zusätzliche where-Bedingung, die post_number mit new_post_number vergleicht und nicht sort_order.
Ich habe nun Folgendes manuell in der Datenbank ausgeführt:
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
Die Beiträge werden nun in der richtigen Reihenfolge angezeigt.
Ich verstehe es auch nicht. Beim Durchsehen des Codes konnte ich keinen Grund dafür finden. Etwas scheint die Sortierreihenfolge zu ändern, aber ich kann nicht erkennen, was.
Ich dachte zunächst, dass sie beim Ausführen eines Upgrades die Reihenfolge verloren hatten, da die Nachrichten, die nicht in der richtigen Reihenfolge waren, im Allgemeinen viel älter waren und zuvor an einer erwarteten Stelle erschienen waren. Als ich das obige SQL ausführte, schien alles in Ordnung zu sein, aber in der vergangenen Woche sind auch ein paar brandneue Beiträge nun in falscher Reihenfolge erschienen. Ich vermute, dass die betroffenen Beiträge immer Antworten auf einen anderen Beitrag sind. Zum Beispiel:
Ich habe das gleiche Problem. Ich hatte zuvor 502-Fehler beim Verschieben von Beiträgen aufgrund langer Themen. Ich bin mir nicht sicher, ob das damit zusammenhängt. Ich habe auch das Frage-Antwort-Plugin installiert, sehe aber nach dessen Deaktivierung immer noch Beiträge, die am Ende von Themen erscheinen.
Sehr wahrscheinlich ist dies kein wirklich unterstütztes oder offizielles Plugin. sort_order wird im Discourse-Kern nur inkonsistent verwendet; wir erwägen, diese Spalte zu entfernen.
Ich verschiebe dies nach Support, da ich dies als Fehler in einem nicht-offiziellen Plugin betrachte.
@angus Könntest du dir bitte dieses Problem ansehen? Ich habe dieses Plugin installiert, und die Antworten erschienen seither auf der gesamten Seite in der falschen Reihenfolge. Ich habe das Plugin gerade entfernt, aber die Antworten erscheinen immer noch in der falschen Reihenfolge.
Ich habe einen Test an einem einzelnen Beitrag durchgeführt, um zu prüfen, ob der folgende Befehl die durcheinander geratenen Antworten in einem einzelnen Beitrag korrigiert (nachdem das Q&A-Plugin entfernt wurde).
rake posts:reorder_posts[1896]
Leider erscheinen die Beiträge weiterhin nicht in der richtigen Reihenfolge.
Hey, es tut uns leid, dass du dieses Problem hattest. Bitte poste alle Updates dazu unter Question Answer Plugin. @mbcahyono und/oder ich werden uns bald melden. Dies ist keine allgemeine Frage zur Discourse-Unterstützung.