Obrigado pelos scripts!
No entanto, acho que o manual está bastante cru e pouco claro. Tive que consultar, por exemplo, o guia de migração do XenForo para realmente entender o que vocês sugerem aqui. Deixe-me adicionar algumas etapas que faltam:
- Ter o Discourse instalado e funcionando
- Criar o mysqldump do Phorum original - tudo claro, tudo bem.
- Copiar o dump do banco de dados para a pasta do Discourse
docker cp /path/to/backup/phorum_db.sql.gz app:/shared/phorum_db.sql.gz(assumindoappcomo nome padrão do contêiner)
E aqui as partes que faltam: - Entrar no contêiner Docker do Discourse e instalar o MySQL lá:
docker exec -it app bash apt-get update && apt-get upgrade
# pv apenas para conveniência para exibir o progresso, lsb-release é necessário por algo apt-get install -y lsb-release pv mariadb-server mariadb-client libmariadb-dev service mariadb start
Note que a instalação do MySQL é um pouco mais complicada, mas o Mariadb deve funcionar bem.
Em seguida, crie um banco de dados: mysql → CREATE database phorum.
Em seguida, preencha-o a partir do backup: pv phorum_db.sql.gz | gunzip | mysql phorum (não é necessário gunzip se o seu dump for sql puro).
Adicione suporte MySql ao Ruby:
cd /var/www/discourse/
echo "gem 'mysql2'" >>Gemfile
bundle config unset deployment
bundle install --no-deployment
Modifique os dados no script de migração (credenciais do banco de dados, prefixo, permalinks):
nano /var/www/discourse/script/import_scripts/phorum.rb
E então de volta ao guia do post original, tudo bem lá:
Execute o importador com uma instância limpa do Discourse:
git config --global --add safe.directory /var/www/discourse bundle exec ruby script/import_scripts/phorum.rb
Se o seu banco de dados Discourse não estiver realmente limpo, é melhor limpá-lo com bundle exec rake db:drop db:create db:migrate antes.
Se falhar com “PG::ConnectionBad: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL: Peer authentication failed for user "discourse" (PG::ConnectionBad)”:
- Se você receber o erro
'Peer authentication failed for user "discourse"':- Edite o arquivo
/etc/postgresql/13/main/pg_hba.conf- Mude todos os ‘peer’ para ‘trust’ e salve o arquivo
- Recarregue o servidor postgres:
/etc/init.d/postgresql reload(ou talvezpsql -U postgres -c "SELECT pg_reload_conf();", mas isso falhava para mim às vezes)
Primeiro, ele executa as migrações de usuários, que podem ser relativamente lentas (~1.2k usuários/minuto de acordo com a saída do script. Eu tinha 100k usuários, então…). Em seguida, ele cria categorias e começa a migrar mensagens e tópicos (mesma velocidade, ~1.2k/minuto), mas a essa altura você já pode acessar o site e ver como está.
Parece bem mais suave do que eu esperaria para um motor tão antigo quanto o Phorum. Parece que não há migração de Mensagens Privadas (PM), mas isso não deve ser um bloqueador para mim, pelo menos.
Obrigado novamente pelo script e pelos esforços!