Neste tutorial, aprenderemos como migrar um fórum PunBB para a plataforma
usando o script Importador oficial. Vamos começar ![]()
O que pode ser migrado
-
Tópicos e respostas => tópicos e posts
-
Categorias e Fóruns
- Categoria raiz => categoria raiz
- Categoria filha => subcategoria
- Fórum raiz => subcategoria
- Fórum filho => subcategoria
-
Usuários
- nome de usuário
- nome
- site
- status de privilégio
- localização
- data de inscrição
- status de administração
- status de banido
Nosso plano é muito simples, tudo o que precisamos:
-
Configurar o ambiente de desenvolvimento (DEV ENV) local.
-
Exportar o banco de dados de produção.
-
Importar o banco de dados de produção para o Discourse.
-
Executar o script importador do PunBB.
Vamos começar ![]()
Configurar o Ambiente de Desenvolvimento (DEV ENV) Local
Primeiro de tudo, você precisa seguir um dos seguintes guias para instalar a 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 executando:
$ brew services list
Você deve ver algo como:
mysql@5.7 started
Caso contrário, execute o seguinte e verifique novamente o status:
$ brew services start mysql@5.7
Ubuntu 18.04:
Execute o seguinte para instalar o servidor MySQL:
$ 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.
Agora, nosso ambiente de desenvolvimento (DEV ENV) está pronto. Vamos chamá-lo de: servidor Discourse.
Exportar o Banco de Dados de Produção
Exporte/respalde o banco de dados de produção (do servidor de produção PunBB) executando:
$ mysqldump -u USER_NAME -p DATABASE_NAME > punbb.sql
- Copie esse dump do banco de dados para o servidor Discourse.
Você pode usar
scpoursyncpara copiar o banco de dados.
Importar o Banco de Dados de Produção para o Discourse
No servidor Discourse, crie um novo banco de dados vazio. Para isso, precisamos usar a CLI do MySQL:
$ mysql -u root
Se o usuário do seu banco de dados tiver uma senha, você deve executar o seguinte e digitar sua senha:
mysql -u root -p
mysql> CREATE DATABASE punbb;
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 |
| punbb |
+--------------------+
Nosso próximo passo é importar o banco de dados de produção para este novo banco de dados vazio.
$ mysql -u root punbb < punbb.sql
Executar o Script Importador do PunBB
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 que ele funcione corretamente. Abra script/import_scripts/punbb.rb em qualquer editor de sua preferência e altere. Essencialmente, tudo o que você precisa fazer é fornecer as informações do banco de dados MySQL:
PUNBB_DB = "DATABASE_NAME"
.
.
.
@client = Mysql2::Client.new(
host: "localhost",
username: "MYSQL_USERNAME",
password: "MYSQL_PASSWORD",
database: PUNBB_DB
)
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/punbb.rb
O importador se conectará ao banco de dados MySQL e migrará seu fórum PunBB para o banco de dados Discourse.
Após o importador finalizar, inicie o servidor Discourse executando:
$ bundle exec rails server
Em seguida, inicie o processador de jobs em segundo plano para processar os dados migrados:
$ bundle exec sidekiq
Você pode monitorar o progresso do sidekiq neste URL:
http://localhost:3000/sidekiq/queues.
Em seguida, prepare seu servidor de produção do Discourse seguindo este tutorial.
Faça um backup da plataforma local do Servidor Discourse 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 ![]()