[Seite unten :(] Upgrade\Rebuild Fehler - DB Migration Problem?

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.

image

Es scheint, dass es zwei Benutzer namens racerx gibt. Ich glaube, es gibt hier ein ähnliches Thema:

Auch hier ein aktuelleres Thema:

4 „Gefällt mir“

Danke, ich werde diesen Weg einschlagen… Wünsch mir Glück..

1 „Gefällt mir“

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.

image

2 „Gefällt mir“

Sie müssen diese Befehle im Container ausführen. Etwas wie

./launcher start app
./launcher enter app

Bevor Sie sudo postgres ausführen

Bearbeiten: Oh, Sie sind in den Container eingestiegen.

Das postgres -c benötigt ein sudo davor.

4 „Gefällt mir“

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.

Ich werde weiter graben. Ich weiß auch noch nicht, wie viele Duplikate ich habe…

/edit… es ist nur racerx. VERDAMMT RACERX!

image

2 „Gefällt mir“

Hast du herausgefunden, wie man es repariert?

Ich würde auch die Benutzer-IDs (die eindeutig sind) zurückgeben, um sie richtig zu identifizieren, und dann einen dieser beiden Benutzer umbenennen :slight_smile:

4 „Gefällt mir“

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;
3 „Gefällt mir“

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

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.