Neste tutorial, aprenderemos como migrar um fórum MyBB para a plataforma
usando o script oficial de importação do MyBB.
O que pode ser migrado
- Categorias
- Categoria raiz => categoria raiz
- Categoria filha => subcategoria
- Fórum raiz => subcategoria
- Fórum filho => subcategoria
- Tópicos e respostas => tópicos e posts
- Usuários
- nome de usuário
- status de privilégios
- status de inscrição
- Redirecionamentos
Nosso plano é muito simples:
- Configurar o ambiente local de DEV.
- Exportar o banco de dados de produção.
- Importar o banco de dados de produção para o Discourse.
- Executar o script de importação do MyBB.
Vamos começar ![]()
Configurando o Ambiente Local de DEV
Primeiro de tudo, você precisa seguir um destes guias para instalar a própria plataforma Discourse. Consulte este guia se tiver algum problema.
Instale o servidor de banco de dados MySQL;
MacOS:
$ brew install mysql@5.7
$ echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
Verifique o status do serviço:
$ brew services list
Você deve ver algo como isto:
mysql@5.7 started
Caso contrário, execute o seguinte e tente novamente:
$ brew services start mysql@5.7
Ubuntu 18.04:
$ sudo apt update
$ sudo apt install mysql-server -y
Após concluir a instalação do MySQL, verifique seu status:
$ systemctl status mysql.service
Se não estiver em execução, execute o seguinte:
$ sudo systemctl start mysql
Para o Windows, você pode seguir o guia de instalação oficial.
Vamos chamar este ambiente de: servidor Discourse.
Exportando o Banco de Dados de Produção
Exporte/backup o banco de dados de produção (do servidor de produção MyBB) executando:
$ mysqldump -u NOME_USUARIO -p NOME_BANCO_DADOS > mybb_dump.sql
- Copie este dump do banco de dados para o servidor Discourse.
Você pode usar
scpoursyncpara copiar o banco de dados.
Importando o Banco de Dados de Produção para o Discourse
No servidor Discourse, crie um banco de dados:
$ mysql -u root
Se seu usuário do BD tiver uma senha, você deve usar:
mysql -u root -pe depois digitar sua senha.
mysql> CREATE DATABASE mybb;
Certifique-se de que o banco de dados foi criado com sucesso executando:
mysql> SHOW DATABASES;
Você deve ver algo como:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| mybb |
| sys |
+--------------------+
O BD mybb está vazio por enquanto. Nosso próximo passo é importar o banco de dados de produção para ele.
$ mysql -u root mybb < mybb_dump.sql
Mais tarde, precisaremos do prefixo da tabela. Então, enquanto estamos aqui, vamos obtê-lo.
$ mysql -u root
mysql> USE mybb;
mysql> SHOW TABLES;
Você verá algo como isto:
+--------------------------+
| Tables_in_mybb |
+--------------------------+
| mybb_adminlog |
| mybb_adminoptions |
| mybb_adminsessions |
| mybb_adminviews |
| mybb_announcements |
| mybb_attachments |
| mybb_attachtypes |
| ...O restante das tabelas....|
+--------------------------+
Nosso prefixo de tabela é mybb_, conforme mostra a saída.
Executando o Script de Importação do MyBB
- Vamos primeiro instalar as dependências do importador. Do servidor Discourse:
$ cd ~/discourse
$ echo "gem 'mysql2', require: false" >> Gemfile
$ bundle install
Em seguida, você deve configurar o script para funcionar corretamente. Copie e cole o seguinte em seu shell (altere os valores se necessário):
export DB_HOST="localhost"
export DB_NAME="mybb"
export DB_PW=""
export DB_USER="root"
export TABLE_PREFIX="mybb_"
Você tem outra opção para configurar o script. Abra script/import_scripts/mybb.rb em qualquer editor de sua escolha e altere os valores dentro das aspas duplas para atender às suas necessidades:
DB_HOST ||= ENV['DB_HOST'] || "localhost"
DB_NAME ||= ENV['DB_NAME'] || "mybb"
DB_PW ||= ENV['DB_PW'] || ""
DB_USER ||= ENV['DB_USER'] || "root"
TABLE_PREFIX ||= ENV['TABLE_PREFIX'] || "mybb_"
Execute o importador com uma instância limpa do Discourse:
$ bundle exec rails db:drop
$ bundle exec rails db:create
$ bundle exec rails db:migrate
$ bundle exec ruby script/import_scripts/mybb.rb
O importador se conectará ao servidor MySQL e migrará seu banco de dados MyBB para o banco de dados Discourse.
Após o término do importador, inicie a instância do Discourse executando:
$ bundle exec rails server
Em seguida, inicie o Sidekiq (processador de jobs em segundo plano) para processar os dados migrados:
$ bundle exec sidekiq
Você pode monitorar o progresso do sidekiq em
http://localhost:3000/sidekiq/queues.
Configure seu servidor de produção do Discourse seguindo este tutorial.
Faça um backup da plataforma Discourse (servidor Discourse local) e faça o upload para seu servidor de produção do Discourse seguindo este tutorial.
![]()
Se você tiver alguma dúvida sobre o processo, ficarei feliz em ajudar.
Boa migração ![]()


