J’ai pu effectuer un Google Takeout de mes Google Groups, télécharger les fichiers .mbox et les importer.
Ces étapes ont été utiles pour mapper le data/folder à une catégorie existante, mais cela doit être fait dans le conteneur import, et non dans le conteneur app comme indiqué dans ce guide :
./launcher enter import
rails c
# Utilisez l'ID de catégorie affiché dans l'URL, par exemple
# c'est 16 lorsque le chemin de la catégorie ressemble à ceci : /c/soccer/16
category = Category.find(16)
# Utilisez le nom du répertoire où les fichiers mbox sont stockés. Par exemple,
# lorsque les fichiers sont stockés dans import/data/foo, vous devez utiliser "foo" comme nom de répertoire.
category.custom_fields["import_id"] = "soccer"
category.save!
J’ai déjà des utilisateurs dans Discourse qui se sont migrés eux-mêmes, et donc le script d’importation a échoué à créer des contacts pour eux (ce qui n’est probablement pas une mauvaise chose), mais les messages importés auxquels ces utilisateurs Discourse existants étaient associés affichent l’expéditeur comme system au lieu de leur nom.
Existe-t-il un moyen de mapper les utilisateurs existants à leurs messages importés ?
Pour l’instant, j’ai annulé tout cela en restaurant une sauvegarde récente. Je suis prêt à réessayer avec quelques conseils sur la gestion des utilisateurs Discourse existants et de leurs messages importés.
Mise à jour :
Claude a aidé à résoudre le mappage des utilisateurs existants ; il faut exécuter cette boucle dans la console Rails, en plus du bloc ci-dessus :
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