Uma breve atualização. Graças ao trabalho de um pequeno grupo incrivelmente dedicado, estamos quase terminando.
A partir da próxima segunda-feira, iniciaremos algumas execuções de teste em uma máquina de staging, mas os resultados são promissores.
Estes são os números totais que temos:
Em termos de tamanho, o banco de dados no formato vbulletin3 tem cerca de 8 GB.
E os testes executados a partir de máquinas locais conectando-se ao banco de dados de origem remotamente levam cerca de 6 horas para serem concluídos.
O script migra todos os fóruns/subfóruns, traduzindo-os em categorias e subcategorias. Requer subcategorias de 3º nível porque temos um fórum de estilo bastante antigo e há alguns fóruns de “clã” hospedados lá que são realmente MUITO aninhados.
Qualquer coisa além do 3º nível é automaticamente convertida em uma tag, mantendo a estrutura hierárquica que tinha em termos de relacionamento pai/filho de subfórum (usando grupos de tags).
Todos os subfóruns que foram definidos com permissão personalizada (somente leitura, por exemplo), ou apenas para mods/admin, ou novamente, apenas ocultos com acesso por senha, estão sendo migrados como “acessíveis apenas para a equipe”. Eles serão cerca de uma dúzia no final e poderemos ter a equipe reativando-os manualmente para os grupos de usuários corretos.
Usuários, grupos de usuários e mensagens privadas também são migrados. As mensagens privadas são migradas no “estilo discourse”, o que significa que, em vez de N tópicos com 1 mensagem, como você veria em uma migração simples de banco de dados 1:1 (estrutura de banco de dados realmente boba), ele terá a forma organizada de thread que o discourse usa.
O script também já faz o “cooking” para acelerar o processo, para todas as postagens.
A migração de tópicos e postagens é feita com várias conexões paralelas e sempre tentará usar o máximo de conexões que o banco de dados de origem permitir.
Veremos quanto tempo leva em média em uma máquina pequena de 2vcore/4gb de RAM, mas já é várias ordens de magnitude mais rápido do que o script de migração em massa atual (inacabado) que está disponível.
Várias partes poderiam ser otimizadas melhor e MUITO disso é realmente projetado sob medida para o nosso fórum (temos até mapeamento em json para reorganizar grande parte da estrutura do fórum para que seja menos caótico), então duvido que possa ser adaptado e usado por qualquer outra pessoa sem alguns ajustes, mas discutiremos internamente se queremos abrir o repositório de código-fonte ao público após a conclusão de nossa migração.
