Die jüngste Migration zu Discourse führte dazu, dass Benutzernamen sich änderten!

Ich habe kürzlich eine Website zu Discourse migriert. Was mir nicht bewusst war, ist, dass sich die Benutzernamen vieler Benutzer geändert haben und die neuen Benutzernamen einen Teil ihrer E-Mail-Adresse zu verwenden scheinen. Ich habe noch nie erlebt, dass sich Benutzernamen bei früheren Migrationen geändert haben. Wie kann ich das rückgängig machen?

1 „Gefällt mir“

Wenn Sie bereits live sind, wird es schwierig sein, Dinge zu ändern, obwohl der ursprüngliche Benutzername in einem benutzerdefinierten Feld des Benutzers stehen sollte. Sie möchten diese Probleme wirklich in der Testphase lösen.

Es sei denn, das Migrationsskript ist fehlerhaft, der Grund für die Änderung von Benutzernamen ist, dass sie mit dem Discourse-Benutzernamenformat inkompatibel sind.

Welche Benutzernamen wurden geändert? Wovon haben Sie migriert?

5 „Gefällt mir“

Vielen Dank für Ihre Antwort, Jay. Wir mussten die Website in den Wartungsmodus versetzen, um diese Korrekturen vorzunehmen. Es war seltsam, dass die Spalten für Benutzername und Name geändert wurden. Wir sehen, wie wir sie austauschen können. Das ist sehr verwirrend…

1 „Gefällt mir“

Sie können UserCustomField.where(user_id: some_id) betrachten, um zu sehen, welche benutzerdefinierten Felder für diesen Benutzer existieren, was ihren ursprünglichen Benutzernamen enthalten sollte.

2 „Gefällt mir“

Wir konnten tauschen. Aber nach dem Tauschen lassen sich die Profile nicht mehr öffnen! Es wird angezeigt: Ups, Seite nicht gefunden.

Nur zur Überprüfung, hast du deine Seite nach dem Neuzuordnen von Benutzernamen aktualisiert? Discourse verwendet weiterhin den alten Namen clientseitig, bis du neu lädst. Wenn du also Namen neu zugeordnet und nicht neu geladen hast, würde es versuchen, Benutzerprofile zu öffnen, die nicht mehr existieren.

2 „Gefällt mir“

Danke. Wir werden das prüfen.
Außerdem verstehe ich nicht, wie es sich entscheidet, den ersten Teil der E-Mail-Adresse automatisch zuzuweisen.

1 „Gefällt mir“

Die wertvolle Plattform erlaubte Benutzern, Profilnamen mit Leerzeichen und Sonderzeichen zu erstellen, und sie verwendete die Benutzer-ID für die URL.

Können wir die Benutzer-ID in der URL verwenden und die Migration von Profilnamen mit Leerzeichen und Sonderzeichen beibehalten?

Wir haben festgestellt, dass die Benutzernamen und Namen von Sims identisch waren.
Wir haben festgestellt, dass einige Namen jetzt Leerzeichen enthalten.

Wenn wir die Abschnitte für Benutzernamen und Namen vertauschen, weist Discourse möglicherweise die halbe E-Mail-ID als Benutzernamen für diejenigen zu, die nicht den Profilnamensrichtlinien entsprechen.

1 „Gefällt mir“

Und warum sollte Discourse überhaupt E-Mail-Adressen verwenden? Sicherheitsrisiko

Nein. Discourse erlaubt keine Leerzeichen oder (die meisten) Sonderzeichen in Benutzernamen. Deshalb wurden sie neu geschrieben.

Ich verstehe nicht, was Sie über die URL sagen.

Es muss etwas verwenden, um einen Benutzernamen zu generieren.

Es macht Folgendes:

UserNameSuggester.suggest(
        opts[:username].presence || opts[:name].presence || opts[:email],

Wenn Sie also keinen Benutzernamen oder keinen Namen haben, greift es auf den ersten Teil der E-Mail-Adresse zurück.

1 „Gefällt mir“

Können wir es also in etwas anderes ändern? Oder die E-Mail-ID als Option entfernen?

1 „Gefällt mir“