Ich konnte es gerade schnell durchgehen und die gleichen Ergebnisse reproduzieren.
- Erstellen Sie eine Kategorie mit einem Admin-Benutzer
- Entziehen Sie ihm den Admin-Status und löschen Sie den Benutzer
- Das „Über“-Thema der Kategorie wird beim Löschen des Benutzers weich gelöscht
- Der Versuch, das Thema wiederherzustellen/zu löschen, funktioniert nicht
- Der Wechsel des Eigentümers funktioniert technisch gesehen, aber das Thema bleibt in einem seltsamen gelöschten Zustand, egal was Sie über die Benutzeroberfläche tun.
In der Konsole sieht es so aus, als ob der posts-Datensatz, der mit dem Thema verknüpft ist, beim Löschen des Benutzers ebenfalls gelöscht wird. Der Themen-Datensatz enthält viele Nullen, wenn man sich verschiedene post-bezogene Attribute ansieht.
Es könnte sich lohnen, dass ein Ingenieur prüft, ob wir hier etwas eleganter vorgehen können, aber ich vermute, dass das leichter gesagt als getan ist.
Ich habe einen Workaround gefunden, um wieder in einen guten Zustand zu kommen, musste dafür jedoch die Kommandozeile verwenden. @jrivettcsa Ich empfehle Ihnen, vor dem Versuch ein Backup zu erstellen:
Benötigte Werte
Kopieren Sie unbedingt den Inhalt des „Über“-Themas, den Sie später verwenden möchten, in einen Texteditor oder ähnliches, und fahren Sie dann mit dem Folgenden fort:
Öffnen Sie die Rails-Konsole:
cd /var/discourse
./launcher enter app
rails c
Ersetzen Sie <ABOUT_TOPIC_ID> im folgenden Befehl durch die ID des „Über“-Themas der Kategorie und führen Sie ihn aus, um das defekte Thema hart zu löschen:
Topic.where(id: <ABOUT_TOPIC_ID>).destroy_all
Drücken Sie die Taste q, um bei Bedarf wieder zur Konsole zurückzukehren.
Die Kategorie ist immer noch mit dem defekten Thema verknüpft, daher müssen wir diese Zuordnung auflösen. Ersetzen Sie <CATEGORY_ID> im folgenden Befehl durch die ID der Kategorie und führen Sie ihn aus:
Category.where(id: <CATEGORY_ID>).update_all(topic_id: nil)
Drücken Sie die Taste q, um bei Bedarf wieder zur Konsole zurückzukehren.
Beenden Sie die Rails-Konsole und führen Sie den folgenden Rake-Auftrag aus, um ein neues „Über“-Thema für die Kategorie zu erstellen:
exit
rake categories:create_definition
Jetzt sollte die Kategorie repariert sein! Sie können diesen Vorgang bei Bedarf so oft wiederholen, wie nötig.