Ich aktualisiere heute auf die aktuelle Version von Discourse, der Wiederaufbau schlägt fehl und ich bin mir nicht sicher, was die Ursache ist. Die Installation war einige Iterationen zurück (ich glaube 2.8x). Das Docker-Image-Update verlief reibungslos, als ich Discourse aktualisieren wollte, wurde ich aufgefordert, einen manuellen Pull & Rebuild durchzuführen (meistens werde ich danach gefragt), aber der Rebuild war nicht erfolgreich.
Hier sind die Ergebnisse einer Suche nach “error” mit discourse-doctor. Entschuldigung für die Screenshots, der webbasierte VNC-Client, den ich habe, scheint keine Kopie/Einfügen zu unterstützen.
Ich stecke fest, wie ich den Re-Indexing starten kann. Ich konnte starten (obwohl er nicht webzugänglich ist) und die App eingeben, aber ich komme nicht weiter.
Ich schätze, sudo würde nicht funktionieren, aber su schon und jetzt stöbere ich in postgres.
Jetzt muss ich herausfinden, wie ich die Duplikate tatsächlich beheben kann. Die Abfrage scheint zu sein…
UPDATE users SET username_lower = 'xxx' WHERE id = xxx;
Ich habe ein paar Variationen ausprobiert, aber ohne Erfolg. Wie Sie sehen können, bin ich mir nicht zu 100 % sicher, was die richtige Syntax ist, da der Fehler spaltenbezogen ist.
Erweiternd auf das, was @Canapin gesagt hat, falls Sie es noch nicht herausgefunden haben, sollte es einfach sein, die Benutzernamen eindeutig zu machen, da Sie bereits festgestellt haben, dass racerx der einzige doppelte Benutzername ist.
Stellen Sie zunächst sicher, dass racerx2 noch nicht existiert, damit Sie das Problem nicht einfach auf einen anderen Benutzernamen verschieben: (Wenn Sie eine ID erhalten, versuchen Sie einen anderen Benutzernamen.)
SELECT id FROM users WHERE username_lower = 'racerx2';
Sobald Sie einen ungenutzten Benutzernamen haben, rufen Sie die IDs der doppelten racerx-Konten ab:
SELECT id from users WHERE username_lower = 'racerx';
Wählen Sie eine aus, es spielt keine Rolle, welche, obwohl ich die höchste verwenden würde, und ändern Sie dann ihren Benutzernamen: (Ersetzen Sie racerx2 durch einen anderen Benutzernamen, falls erforderlich, und 12345 durch die racerx-ID, die Sie ausgewählt haben.)
UPDATE users SET username_lower = 'racerx2' WHERE id = 12345;
Update (War einige Tage im Entwurfsmodus, Entschuldigung) Sieht so aus, als hätte ich es herausgefunden. Ich bin mir nicht sicher, ob das, was ich getan habe, der richtige Ansatz war, aber es wurde erfolgreich neu erstellt.
Es fiel mir schwer, den racerx-Wert in der Spalte username_lower mit der Syntax zu ändern/anzuhängen, also ging ich einen anderen Weg. Indem ich die IDs für die Zeilen nachschlug und den Wert username_lower in einer bestimmten Zeile modifizierte.
Zuerst versuchte ich, einen Bericht über alle Zeilen in der Tabelle users zu erhalten, die „racerx“ in der Spalte username_lower hatten.
select all from users where username_lower ='racerx';
Davon ausgehend beschloss ich, racerx in racerx2 zu ändern. Ich erinnere mich nicht mehr genau, was ich eingegeben habe, um das zu erreichen. Ich denke, es war UPDATE SET von users username_lower racerx zu racerx2