Tendo lutado com sucesso com o script de migração do vbulletin e observando a migração em andamento por 36 horas, com alguns milhões de posts ainda por ir…
Se não houver conteúdo ou relacionamentos de dados existentes no Discourse para preservar, há alguma razão pela qual um fórum existente que não seja do Discourse não possa ser migrado gerando um snapshot de backup SQL do Discourse diretamente dos dados do banco de dados de origem?
Teríamos que escrever o script mais ou menos do zero, mas seria de alto nível semelhante aos scripts de migração existentes. O script extrairia os dados do banco de dados de origem, os processaria conforme necessário* e geraria dumps de dados planos para cada tabela de destino do Discourse que poderiam ser usados para montar o equivalente a um snapshot de backup do Discourse. Mais ou menos, a saída do script seria injetada no snapshot de backup de uma instância vazia do Discourse.
O * acima esconde muito trabalho, mas há algum grande obstáculo que estou ignorando? Como podemos reutilizar todos os identificadores de dados de origem existentes (ID do tópico, ID da thread, etc.), não acho que a etapa de processamento exija a manutenção de uma quantidade significativa de estado, mas talvez eu esteja errado sobre isso. Parece que o trabalho pesado da lógica de migração estaria nas chamadas de banco de dados para o banco de dados de origem.