Ho potuto esportare i miei Google Groups tramite Google Takeout, caricare i file .mbox e importarli.
Questi passaggi sono stati utili per mappare la cartella data/folder a una categoria esistente, ma è necessario eseguirli nel contenitore import, non nel contenitore app come indicato in questa guida:
./launcher enter import
rails c
# Usa l'ID della categoria visualizzato nell'URL, ad esempio
# è 16 quando il percorso della categoria è simile a questo: /c/soccer/16
category = Category.find(16)
# Usa il nome della directory in cui sono archiviati i file mbox. Ad esempio,
# se i file sono archiviati in import/data/foo, dovresti usare "foo" come nome della directory.
category.custom_fields["import_id"] = "soccer"
category.save!
Ho già degli utenti su Discourse che si sono migrati autonomamente, quindi lo script di importazione non è riuscito a creare i contatti per loro (probabilmente non è un problema), ma i messaggi importati in cui erano coinvolti questi utenti esistenti di Discourse mostrano il mittente come system invece del loro nome.
Esiste un modo per mappare gli utenti esistenti ai loro messaggi importati?
Per ora ho annullato tutto ripristinando un backup recente. Sono pronto a riprovare con alcune indicazioni su come gestire gli utenti esistenti di Discourse e i loro messaggi importati.
Aggiornamento:
Claude ha aiutato a risolvere il problema della mappatura degli utenti esistenti; è necessario eseguire questo ciclo nella console di Rails, oltre al passaggio precedente:
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