Consegui fazer um Google Takeout dos meus grupos do Google, fazer upload dos arquivos .mbox e importar.
Esses passos foram úteis para mapear o data/folder para uma categoria existente, mas isso precisa ser feito no contêiner import, não no contêiner app como neste artigo:
./launcher enter import
rails c
# Use o ID da categoria mostrado na URL, por exemplo
# é 16 quando o caminho da categoria se parece com isso: /c/soccer/16
category = Category.find(16)
# Use o nome do diretório onde os arquivos mbox estão armazenados. Por exemplo,
# quando os arquivos estão armazenados em import/data/foo, você deve usar "foo" como nome do diretório.
category.custom_fields["import_id"] = "soccer"
category.save!
Já tenho usuários no Discourse que se migraram automaticamente, e por isso o script de importação falhou ao criar contatos para eles (provavelmente não é algo ruim), mas as mensagens importadas nas quais esses usuários existentes do Discourse estavam envolvidos mostram o remetente como system em vez do nome deles.
Existe alguma maneira de fazer com que ele mapeie os usuários existentes para suas mensagens importadas?
Por enquanto, desfiz tudo recuperando de um backup recente. Estou pronto para tentar novamente com alguma orientação sobre como lidar com usuários existentes do Discourse e suas mensagens importadas.
Atualização:
O Claude ajudou a resolver o mapeamento de usuários existentes; é necessário executar este loop no console do Rails, além do trecho acima:
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