Migrar um fórum SMF2 para Discourse

Você quer dizer Postgres? Não tenho certeza do que se trata.

O que eu faria é, se o ID do usuário for 0, usar o nome de usuário para o ID. Então, se find_username_by_import_id não conseguir encontrar o usuário, crie o usuário, definindo o endereço de e-mail para fake_email (é uma função em base.rb que gera um endereço de e-mail falso) e o nome de usuário com o nome de usuário que você tem. Então, se você for ambicioso, poderá, no final do script, suspender todos os usuários que têm @email.invalid em seus endereços de e-mail. Eles não estarão ativos, então não acho que faria muita diferença se você não os suspendesse.

Outra maneira seria fazer uma consulta que de alguma forma gerasse uma lista de todos os usuários excluídos e, em seguida, criá-los antes de começar a postar, mas isso parece mais difícil.

Se você quiser criar um usuário deleted user e ter todas essas postagens pertencentes a esse usuário em vez de system, você pode fazer isso e apenas substituir o -1 pelo número do usuário de deleted user. Você pode criá-lo como um usuário regular ou fazer algo sofisticado e dar a ele um ID de usuário de -2 ou algo assim.

Em alguns sistemas, isso ocorre porque às vezes os anexos estão no corpo da postagem e, em outros, o registro do anexo está no banco de dados.

Você instalou o plugin Suporte a hashes de senhas migrados depois de executar a importação (ele pode interferir na execução de importações em pelo menos algumas circunstâncias). O SMF2 faz hash de senhas da mesma forma que o smf faz?