Criei um script de migração para importar o banco de dados do FluxBB para o Discourse. Agora vou explicar como realizar o processo de importação em um tutorial passo a passo.
Testei este script de migração com o FluxBB v1.5.10 (que é a versão atual).
Quais dados podem ser importados?
- Usuários (incluindo biografias e assinaturas)
- Grupos
- Categorias
As permissões não serão importadas e todas as categorias ficarão públicas. As permissões corretas devem ser definidas manualmente após a importação. - Tópicos (incluindo status de fixado/pin)
- Posts
- Usuários suspensos
Antes de iniciar a migração, configure um ambiente de desenvolvimento em sua máquina (ou dentro de uma máquina virtual). Consulte o guia de instalação para desenvolvimento no OS X ou no Ubuntu.
O Discourse requer Ruby 3.4+. Para verificar sua versão do Ruby, digite o comando abaixo:
ruby -v
MySQL
Agora precisamos do gem mysql2 para o Ruby se conectar ao nosso antigo banco de dados FluxBB. Execute os comandos abaixo para instalar a dependência libmysqlclient-dev e o gem mysql2.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libmysqlclient-dev
gem install mysql2
(opcional) Importando dump MySQL para localhost
Para instalar o cliente MySQL e importar um arquivo de dump MySQL (.sql) para sua máquina de desenvolvimento, siga as instruções abaixo:
sudo apt-get install mysql-server mysql-client
Crie o usuário MySQL, conceda permissões e crie a tabela:
mysql -u root -p mysql
mysql> CREATE USER 'fluxbb'@'localhost' IDENTIFIED BY 'fluxbb';
Query OK, 0 rows affected (0.00 sec)
.
mysql> CREATE DATABASE fluxbb;
Query OK, 1 row affected (0.01 sec)
.
mysql> GRANT ALL PRIVILEGES ON fluxbb.* TO 'fluxbb'@'localhost';
Query OK, 0 rows affected (0.00 sec)
.
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
.
mysql> exit
Importe o arquivo de dump do seu banco de dados FluxBB:
mysql -u fluxbb -p fluxbb < myfluxbb.sql
BBCode para Markdown
O script de importação lida automaticamente com a conversão de BBCode para Markdown. Nenhum gem adicional é necessário para isso.
Após instalar o mysql2, vá até o caminho de instalação do Discourse e abra o Gemfile para editar.
cd ~/discourse
sudo nano Gemfile
Agora, insira a linha abaixo no final do arquivo para adicionar o gem mysql2 ao Discourse.
gem 'mysql2'
Antes de executar o script de importação, cole estas linhas uma por uma no seu shell. (Use as setas do teclado para editar os valores)
export FLUXBB_HOST="localhost"
export FLUXBB_DB="fluxbb"
export FLUXBB_USER="root"
export FLUXBB_PW=""
export FLUXBB_PREFIX=""
Agora é hora de executar o script de importação. Execute o comando abaixo para iniciar a migração.
RAILS_ENV=production bundle exec ruby script/import_scripts/fluxbb.rb
Aguarde até que a importação seja concluída. Você pode reiniciá-la se o processo ficar extremamente lento.
Após tudo, parabéns! Seu banco de dados foi migrado com sucesso do FluxBB para o Discourse ![]()
Inicie sua instância do Discourse:
bundle exec rails server
Inicie o Sidekiq e deixe-o realizar seu trabalho:
bundle exec sidekiq -q critical,4 -q default,2 -q low
Dependendo do tamanho do seu fórum, isso pode levar bastante tempo. Você pode monitorar o progresso em http://localhost:3000/sidekiq.
Agora faça um backup na página de administração /admin/backups e importe-o no seu site Discourse ao vivo.