Migration einer Mailingliste zu Discourse (mbox, Listserv, Google Groups usw)

Ich konnte ein Google Takeout meiner Google-Gruppen erstellen, die .mbox-Dateien hochladen und importieren.

Diese Schritte waren hilfreich, um das data/folder-Verzeichnis einer bestehenden Kategorie zuzuordnen. Dies muss jedoch im import-Container erfolgen, nicht im app-Container, wie in diesem Artikel beschrieben:

./launcher enter import
rails c

# Verwenden Sie die in der URL angezeigte Kategorien-ID, zum Beispiel
# ist es 16, wenn der Pfad der Kategorie so aussieht: /c/soccer/16
category = Category.find(16)

# Verwenden Sie den Verzeichnisnamen, in dem die mbox-Dateien gespeichert sind. Zum Beispiel,
# wenn die Dateien in import/data/foo gespeichert sind, sollten Sie „foo" als Verzeichnisnamen verwenden.
category.custom_fields["import_id"] = "soccer"
category.save!

Ich habe bereits Benutzer in Discourse, die sich selbst migriert haben, und daher konnte das Import-Skript keine Kontakte für sie erstellen (wahrscheinlich nicht schlecht). Die importierten Nachrichten, an denen diese bestehenden Discourse-Benutzer beteiligt waren, zeigen jedoch den Absender als system anstelle ihres Namens an.

Gibt es eine Möglichkeit, die bestehenden Benutzer ihren importierten Nachrichten zuzuordnen?

Derzeit habe ich alles rückgängig gemacht, indem ich von einem kürzlichen Backup wiederhergestellt habe. Ich bin bereit, es erneut zu versuchen, mit etwas Anleitung zum Umgang mit bestehenden Discourse-Benutzern und ihren importierten Nachrichten.

Update:

Claude hat die Zuordnung bestehender Benutzer gelöst. Zusätzlich zum oben genannten Code muss dieser Loop in der Rails-Konsole ausgeführt werden:

User.where("id > 0").find_each do |u|
  email = u.email.downcase
  unless u.custom_fields["import_id"].present?
    u.custom_fields["import_id"] = email
    u.save_custom_fields
  end
end