Desculpe responder novamente. Estou com dificuldade para entender por que os links permanentes não estão sendo criados.
Para recapitular:
Estou usando as URLs feias padrão do SMF2 no domínio raiz de nível superior. O Discourse está instalado em um subdomínio desse domínio raiz. Usei o importador smf2.rb do repositório mais recente do Discourse para converter o SMF2 para o Discourse (seguindo seu guia), mas não há links permanentes no Discourse após o término da importação.
Estou um pouco confuso porque o Marco não usou URLs amigáveis, mas os links permanentes foram criados para ele e ele usou o mesmo script de importação.
Você mudaria esse permalink (ou talvez alguns outros?) para o que os feios parecem? Embora, para mim, isso já pareça bem feio. Você também pode ajustar o permalink_normalizations no topo do arquivo.
Bem, você e eu estamos olhando para versões diferentes, então. Não tenho certeza do motivo disso. Mas o que você deve procurar são aquelas linhas sobre Permalinks.
Estou confuso porque a versão que linkei parece ser a mais recente versão “oficial”… mas você é a segunda pessoa que mencionou uma versão diferente. O que estou deixando passar? Onde posso obter a sua versão?
Aha! Desculpe. Parece que cliquei no script smf1. Então, olhe para smf1.rb1, que está logo ali junto com o script smf2.rb que você está analisando.
Você pode examinar o script smf1 ou usar make_prettyurl_permalinks como modelo para criar um make_uglyurl_permalinks. Mas isso está lendo da tabela de URL amigável, então pode ser mais fácil usar smf1.rb como modelo, mas eu precisaria verificar o banco de dados para ter certeza. Não. Isso também não ajudará muito, a menos que você modifique as funções create_xxx.
Desculpe. Não vejo uma correção que possa ser explicada aqui.
OK, após MUITAS horas de idas e vindas tentando fazer isso funcionar, identifiquei o problema e estou postando aqui para qualquer outro que possa ficar preso como eu.
O contêiner Docker do MySQL é da versão 8; por algum motivo, a biblioteca do MariaDB que o modelo do MySQL utiliza não funciona.
Eu não incluí o arquivo do modelo do MySQL na configuração do contêiner Docker de importação; essa foi a primeira alteração.
Construí o contêiner de importação e entrei nele com ./launcher enter import
Isso apresenta um prompt interativo e você pode selecionar as opções padrão (MySQL 8 com ferramentas).
Depois, instalei a biblioteca normal do MySQL 8 e continuei a construção:
apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmysqlclient-dev
su discourse -c 'bundle config unset deployment'
su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'
Após tudo isso, o restante foi o mesmo, e a importação agora está rodando.
Os desenvolvedores do Discourse podem querer ajustar os scripts de importação para levar isso em consideração; pelo menos, isso já está nos fóruns para que outros vejam se ficarem presos como eu.
Transferei manualmente o diretório de anexos do SMF2 para o Discourse antes de importar e, em seguida, executei o importador uma vez, mas os uploads não estão aparecendo nas postagens no Discourse. Alguma ideia do porquê?
Já executei o importador uma vez sem o S3 ativado, mas quero usar o S3. O que devo fazer?
oxipng worker: oxipngnão encontrado; por favor, forneça o binário adequado ou desative este worker (argumento --no-oxipng ou:oxipng => false nas opções)
Então, pensei que meus problemas de importação pudessem estar relacionados a questões do S3, mas parece que o S3 está funcionando perfeitamente. O problema que estou enfrentando é que, após executar o script de importação (com o S3 habilitado) e reconstruir o contêiner de importação, parece que todos os tópicos no Discourse estão sem os uploads que são anexos nos tópicos do smf2. Em outras palavras, não há nenhum indicador visual de que há um upload em um tópico do Discourse, algo que é claramente visto como um anexo no equivalente em tópicos do smf2. O resultado é o mesmo quando importo com o S3 desabilitado. Estou um pouco sem ideias aqui. Alguma sugestão?
Pode ser que as imagens estejam anexadas ao post, então o script de importação sabe que deve importá-las, mas elas não são referenciadas no post, por isso não aparecem. Você precisa modificar o texto do post para incluir um link para as imagens. Já vi isso, acho que em outro fórum.