Use um script de importação que requer MySQL

You’ll need to modify the script to import the data. The bbpress script imports only posts of a particular type (I likely don’t remember the right wordpress lingo). What kind of WP posts do you want to import? Which are topics and which are posts? Is there something like categories? Those are just a few questions you’ll need to answer by modifying the script. How to do that is beyond the scope of the support you’re likely to get here.

Edit:I’ve retired a few times and gotten closer… Now:

At step 2, mysql -u$MYSQL_USER -p$MYSQL_PASSWORD $MYSQL_DATABASE < /backup/yourbackup.sql i get the error bash: /backups/yourstratapropertywordpress.sql: No such file or directory when it does exist (at least, in /var/backups it does)

If I jump ahead and try su discourse -c "bundle exec ruby script/import_scripts/bbpress.rb" anyway, I get the following result:

Loading existing users...
Loading existing categories...
Loading existing posts...
Loading existing topics...
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)

Thanks! I will take a look at the DB and the script and see if I can’t accomplish my purposes.

1 curtida

Good luck! I wrote at least a couple importers before I “learned” Ruby. If you have an understanding of SQL that could be acquired in an undergraduate course in the mid 1980s, you can likely pull it off. If you write the queries something such that the field names in the resulting data match what the script expect you might be able to change only the SQL.

@pfaffman I’d really appreciate your help here, I’m very stuck

I’m pretty slammed right now and this likely isn’t solved here. Email Jay@literatecomputing.com with a budget and I’ll do my best to come up with a solution.

This seems like your MySQL server is either not running or is not installed properly.

1 curtida

Success!

The post type should be post and needs to replace post_type topic. Tags were not brought over nor were the topics’ categories. All my posts were imported as an anonymous user, but it is certainly a decent start!

1 curtida

Glad you’re making headway!

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