Use um script de importação que requer MySQL

Você precisará modificar o script para importar os dados. O script do bbPress importa apenas posts de um tipo específico (provavelmente não me lembro do termo correto do WordPress). Que tipo de posts do WordPress você deseja importar? Quais são tópicos e quais são posts? Existe algo como categorias? Essas são apenas algumas perguntas que você precisará responder modificando o script. Como fazer isso está além do escopo do suporte que você provavelmente receberá aqui.

Edição: Já me aposentei algumas vezes e cheguei perto… Agora:

Na etapa 2, ao executar mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < /backup/yourbackup.sql, recebo o erro bash: /backups/yourstratapropertywordpress.sql: No such file or directory mesmo que o arquivo exista (pelo menos, em /var/backups ele existe).

Se eu pular adiante e tentar su discourse -c "bundle exec ruby script/import_scripts/bbpress.rb" mesmo assim, obtenho o seguinte resultado:

Carregando usuários existentes...
Carregando categorias existentes...
Carregando posts existentes...
Carregando tópicos existentes...
Traceback (most recent call last):
        5: from script/import_scripts/bbpress.rb:512:in `<main>'
        4: from script/import_scripts/bbpress.rb:512:in `new'
        3: from script/import_scripts/bbpress.rb:21:in `initialize'
        2: from script/import_scripts/bbpress.rb:21:in `new'
        1: from /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/mysql2-0.5.3/lib/mysql2/client.rb:90:in `connect': Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) (Mysql2::Error::ConnectionError)

Obrigado! Vou dar uma olhada no banco de dados e no script para ver se consigo atingir meus objetivos.

1 curtida

Boa sorte! Escrevi pelo menos alguns importadores antes de ‘aprender’ Ruby. Se você tem uma compreensão de SQL que poderia ser adquirida em um curso de graduação no meio dos anos 80, provavelmente conseguirá realizar isso. Se você escrever as consultas de forma que os nomes dos campos nos dados resultantes correspondam ao que o script espera, talvez seja possível alterar apenas o SQL.

@pfaffman Eu realmente apreciaria sua ajuda aqui, estou muito travado.

Estou bastante sobrecarregado no momento e isso provavelmente não será resolvido aqui. Envie um e-mail para Jay@literatecomputing.com com um orçamento e farei o meu melhor para encontrar uma solução.

Parece que seu servidor MySQL não está em execução ou não foi instalado corretamente.

1 curtida

Sucesso!

O tipo de postagem deve ser post e precisa substituir o post_type topic. As tags não foram transferidas, assim como as categorias dos tópicos. Todas as minhas postagens foram importadas como um usuário anônimo, mas é certamente um bom começo!

1 curtida

Ficamos felizes em ver que você está progredindo!

Obrigado por este guia claro, foi fundamental para a minha compreensão do processo de importação em vez de apenas copiar/colar comandos cegamente.

Ainda estou tentando descobrir a maneira mais rápida de importar um fórum Drupal muito grande, e ainda tenho a impressão de que as coisas poderiam ser otimizadas no meu caso para reduzir o tempo de inatividade quando eu fizer a execução final de migração do fórum de produção. Posso ser um pouco “graybeard” (experiente), mas ainda não estou totalmente convencido com todo o paradigma Docker/containerização. Tenho certeza de que li em algum lugar que houve um bug no Docker em algum momento que estava causando um desempenho massivamente mais lento de instâncias MySQL containerizadas. No fórum do Docker, estou vendo este relatório, mas não tenho certeza se ainda é relevante. Além disso, pode não ser relevante no meu caso porque estou executando Debian em vez de Ubuntu no host.

Outra opção seria instalar MySQL ou MariaDB no sistema operacional host fora do container?

E sem entrar em detalhes, que tal otimizar o my.cnf com algumas sugestões do MySQLTuner? A configuração padrão do Docker que funciona em todos os casos para todas as instâncias não pode ser otimizada com suas instâncias de buffer pool e tamanhos de key buffer, que fazem uma enorme diferença em um banco de dados de produção dedicado.

Olá. Obrigado por esta solução. Tenho tido problemas com gems, como você mencionou em seu artigo, então estou realmente ansioso para fazer isso funcionar. Este método funciona para migrar um fórum Wordpress bbpress (hospedado no DreamPress) para uma instância Discourse (hospedada no Digital Ocean)?

Estou usando o droplet baseado em Ubuntu do Digital Ocean e o terminal/console web. Minha primeira pergunta é o que se espera que aconteça quando eu executar /var/discourse/launcher stop app\n/var/discourse/launcher rebuild import? O terminal/console web deve fechar. Tentei fazer isso, mas o arquivo import.yml não parece salvar. Ele reverte ao seu estado padrão.

Além disso, alguém pode esclarecer se preciso executar o passo opcional 2 na minha configuração?

Muito obrigado desde já.

PS: Estou aberto a pagar alguém para fazer isso, mas meu orçamento é limitado a US$ 200.

Talvez você queira postar isso em Marketplace.

1 curtida